在写代码的过程中经常用到委托,每次都要用 delegate 定义一个委托实属麻烦。现在.NET 类库中就给我们内置了两个委托类型,基本够我们日常使用了。
Action

class Program
{
    static void Main(string[] args)
    {
        Action action = DelegateTest; // 无参数无返回值的委托
        action();
        Action<string> action2 = DelegateTest;
        action("有参数委托");
        Action<string,int> action3 = DelegateTest;
        action("多参数委托",6);
        Action<string,int,,int> action4 = (a,b,c)=>
        {
          Console.WriteLine($"{a},{b}{c}");
        };
        action("多参数委托",6);
        Console.ReadKey();
    }

    static void DelegateTest()
    {
        Console.WriteLine("无参的委托");
    }
    static void DelegateTest(string str)
    {
        Console.WriteLine(str);
    }
    static void DelegateTest(string str,int n)
    {
        Console.WriteLine(str);
        Console.WriteLine(n);
    }
}

** Func** 带有返回值委托

class Program
{
    static void Main(string[] args)
    {
        // 无参数无返回值的委托

        Func<string> action = DelegateTest;
        Console.WriteLine(action());
        // 用法同 Action 一致,但是 Func 有返回值

        Console.ReadKey();
    }

    static string DelegateTest()
    {
       return "无参的委托";
    }
}

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:PipeSoloSymWide 等,欢迎大家加入,贡献开源。

    2764 引用 • 4346 回帖 • 640 关注
  • 笔记
    141 引用 • 319 回帖
  • .NET
    11 引用 • 5 回帖 • 3 关注
感谢    关注    收藏    赞同    反对    举报    分享