zoukankan      html  css  js  c++  java
  • 泛型委托的基本写法

     1.0

    Func<string> Demo = () => { 

                    return "Hello";                        

           };          //这里相当于一个方法,这里是无参数,返回一个string类型

    string  demo= Demo();

    2.0

    Func<string,string> Demo = (str) => {

                    return str;                      

           };          //这里相当于一个方法,这里可以传参数,可以传N个参数,返回一个string类型

    string  demo= Demo("Hellow");

    ++++++++++++++++++++++++++++++++++下面介绍另外一个写法++++++++++++

     1.

    Action<string> demo = (str) => {
                    button2.Text = str;
                };
                demo("Hello");   //返回类型和参数类型都为string

    2.

    Action<string,int> demo = (str,str1) => {
                    button2.Text = str+str1.Tostring();
                };
                demo("Hello",1);   //参数为string,int。

    ++++++++++++++++++++++++++++++++++++委托作为方法进行传递(Func)+++++++++++++++++++++++

                public string FunShow()
                {
                   
                    MessageBox.Show("我是一个Fun委托方法");
                    return 1+"";
                }

            

        

              public void GetSomething<T>(Func<string> fun, T str1)//T可以为DataTable,string,int,char等等类型
                {

                    //string res = fun();//可以接受到执行方法的结果,即传入的Func的委托方法返回的string

                   //也可以访问 str1
                    MessageBox.Show(str1.ToString());
                }

             调用实例:

              string strRes="";

              Func<string>   strFun = new Func<string>(FunShow);

          GetSomething<string>(strFun,strRes);

          

  • 相关阅读:
    窗体吸附 Timer + 判断Location (简单实用)
    C# FTP 应用程序
    C# 加密方法汇总
    LINQ 标准的查询操作符 合计操作符 Count()、Sum()、Min()、Max()、Average()和Aggregate()
    委托中的协变和逆变(C# 编程指南)
    深入探讨C#序列化和反序列化
    grep 命令详解
    Oracle 数据库的启动和关闭的方式!
    linux 下的光盘拷贝
    C3P0连接池配置
  • 原文地址:https://www.cnblogs.com/it888/p/3239540.html
Copyright © 2011-2022 走看看