博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c# action<> func<> 这2个委托怎么用和理解
阅读量:6699 次
发布时间:2019-06-25

本文共 1136 字,大约阅读时间需要 3 分钟。

其实很好理解的呢!~首先你需要明白,他们是委托的简写形式。

一。【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截图

转载地址:http://enloo.baihongyu.com/

你可能感兴趣的文章
rpmbuild FILE
查看>>
golang 指针
查看>>
Perl常用语法记录
查看>>
grep/egrep和正则表达式汇总
查看>>
浏览器渲染机制
查看>>
D - 卿学姐与魔法
查看>>
我的友情链接
查看>>
ssh框架搭建
查看>>
用Python的Tultle模块创建一个五角星
查看>>
第 3 章 镜像 - 018 - 镜像命名的最佳实践
查看>>
寒假自助游之济南
查看>>
chmod的理解
查看>>
记一次phpstudy重启后Apache无法启动
查看>>
JavaScript强化教程 —— Cocos2d-JS极速调试技巧
查看>>
shell统计指定目录下所有文件类型及数量
查看>>
块级元素的margin-left和margin-right的用法注意
查看>>
学好Linux决心书
查看>>
Linux SSH远程管理故障如何排查?
查看>>
Centos7.0 搭建Zabbix环境
查看>>
Showdoc 搭建项目 API 文档系统
查看>>