在写代码的过程中经常用到委托,每次都要用 delegate 定义一个委托实属麻烦。现在.NET 类库中就给我们内置了两个委托类型,基本够我们日常使用了。 Action class Program { static void Main(string[] args) { Action action = DelegateTe ..

[C#]Action 和 Func 的使用

本贴最后更新于 200 天前,其中的信息可能已经时移世改

在写代码的过程中经常用到委托,每次都要用 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 等,欢迎大家加入,贡献开源。

    1873 引用 • 3624 回帖 • 586 关注
  • 笔记

    好记性不如烂笔头。

    173 引用 • 396 回帖
  • .NET
    14 引用 • 5 回帖 • 3 关注
回帖   
请输入回帖内容...