人本善良

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

func 和 actin 委托的区别

一。【action<>】指定那些只有输入参数,没有返回值的委托

1.1定义一个委托:

比如,我们原来写委托:

public delegate void myDelegate(string str); 这个委托表示,它只能委托那些只有一个输入值而没有返回值的方法,比如下面的这个方法。

1.2定义方法

public static void HellowChinese(string strChinese)

        {

            Console.WriteLine("早上好," + strChinese);

        }

1.3调用

myDelegate d = new myDelegate(HellowChinese);

            d("王总");

1.4使用action委托这个方法。

如果我们用原来的方法调用HellowChinese方法,觉得很麻烦,还得自己定义一个委托。那有没有不需要很明白的定义委托呢?

好了,微软就弄了action这么一个委托,我们只需要把符合它要求的方法传进去 就OK啦。。

 

我方法还是用这个:

public static void HellowChinese(string strChinese)

        {

            Console.WriteLine("早上好," + strChinese);

 

        }

 

那我调用这个方法的时候,我就不需要自定义delegate了。我这样就可以:

Action<string> action = HellowChinese;

            action("王总");

 

这样就省去了,减少了很多步骤。

 

 

二。func<> 这个和上面的那个是一样的,区别是这个有返回值!~~~

2.1原先我们定义delegate

public delegate string myDelegate(string str);

2.2.定义方法

 public static string HellowEnglish(string strEnglish)

        {

            return "Hellow " + strEnglish;

        }

2.3 调用

myDelegate d = new myDelegate(HellowEnglish);

            d("Lanny");

2.4使用func调用

方法还是一样

 public static string HellowEnglish(string strEnglish)

        {

            return "Hellow " + strEnglish;

        }

 

但是我们不需要自定义delegate了。。如下

Func<string, string> f = HellowEnglish;

            f("Lanny");

就可以了

2.5截图

posted on   简简单单2018  阅读(223)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示