-
c# 匿名方法(函数) 匿名委托 内置泛型委托 lamada
匿名方法:通过匿名委托 、lamada表达式定义的函数具体操作并复制给委托类型;
匿名委托:委托的一种简单化声明方式通过delegate关键字声明;
内置泛型委托:系统已经内置的委托类型主要是不带返回值的Action<T1,,,,Tn>和带返回值的Func<T1,,,Tn,Tresult>
实例代码(运行环境netcoreapp3.1)
class demoFunc { /// <summary> /// 定义函数单条语句直接用lamada表达式 /// </summary> /// <param name="x"></param> public void funcA( string x)=> Console.WriteLine("this is funcA!{0}",x); /// <summary> /// 使用内置泛型委托action(返回值为void) 定义委托类型成员变量,并通过那lamada定义匿名函数 /// </summary> public Action<string> funcB= x => Console.WriteLine("this is funcB!{0}", x); /// <summary> /// 使用内置泛型委托action(返回值为void) 定义委托类型成员变量, /// 并通过匿名委托定义匿名函数 /// </summary> public Action<string> FuncB_1= delegate(string s) { Console.WriteLine("this is funcB_1!{0}", s); }; /// <summary> /// 定义委托类型 /// </summary> /// <param name="s"></param> public delegate void TFuccB_2(string s); /// <summary> /// 使用匿名函数声明委托 /// </summary> public TFuccB_2 FuncB_2= delegate(string s) { Console.WriteLine("this is funcB_2!{0}", s); }; /// <summary> /// 使用内置泛型委托func(返回值不可以为void,参数列表中最后一个时返回值), /// 定义委托类型成员变量,并通过lamada定义单含带返回值的匿名函数 /// 单行表达式的返回值就是此匿名函数的返回值 /// </summary> public Func<string, string> funcC=x=> string.Format("this is funcC!{0}", x); /// <summary> /// 使用内置泛型委托func(返回值不可以为void),定义委托类型成员变量, /// 并通过lamada定义多行代码的匿名函数 /// </summary> public Func<string,string, string> funcD= (x1, x2) => { Console.WriteLine("this is funcd!{0}{1}", x1, x2); return string.Format("this is funcd!{0}{1}", x1, x2); }; }
运行测试代码
static void Main(string[] args) { demoFunc demo=new demoFunc(); demo.funcA("a"); demo.funcB("b"); demo.FuncB_1("b"); demo.FuncB_2("b"); Console.WriteLine(demo.funcC("c")); Console.WriteLine(demo.funcD("d1","d2")); Console.WriteLine("Hello World!"); }
运行结果
1 "C:\Program Files\dotnet\dotnet.exe" C:/Users/edzjx/RiderProjects/testDemo/testDemo/bin/Debug/netcoreapp3.1/testDemo.dll 2 this is funcA!a 3 this is funcB!b 4 this is funcB_1!b 5 this is funcB_2!b 6 this is funcC!c 7 this is funcd!d1d2 8 this is funcd!d1d2 9 Hello World! 10 11 Process finished with exit code 0. 12
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式