c# lamda,var 匿名类
lambda 是实例化委托的一个参数,是一个方法
1.0 委托
2.0 匿名方法,delegate 关键字
3.0 lambda 表达式,参数列表 => goesto 方法体
4.0 省略参数类型,参数类型由委托推算出来,是语法糖
5.0 如何方法体只有一行,可以去掉大括号,分号
6.0 可以省掉 new 关键字
objec,var 匿名类3.0
4.0 dynamic 避开编译器检查
var 匿名类,是只读的,var是语法糖,由编译器自动推算
public delegate void NoReturnNoParameter();
public delegate void WithReturnWithPara(int x, int y);
public void Show()
{
}
public void Show3(int id ,int name)
{
}
{
//1.0 委托
NoReturnNoParameter method = new NoReturnNoParameter(this.Show);
}
{
//2.0 匿名方法,delegate 关键字;
int i = 10;
WithReturnWithPara method3 = new WithReturnWithPara(delegate (int id, int name)
{
Console.WriteLine("i="+i);
Console.WriteLine($"{id}{name} 高级班");
});
method3.Invoke(123,456);
}
{
//3.0 lambda 表达式,参数列表 => goesto 方法体
int i = 10;
WithReturnWithPara method3 = new WithReturnWithPara( (int id, int name)=>
{
Console.WriteLine("i=" + i);
Console.WriteLine($"{id}{name} 高级班");
});
method3.Invoke(123, 456);
}
{
//4.0 省略参数类型,参数类型由委托推算出来,是语法糖
int i = 10;
WithReturnWithPara method3 = new WithReturnWithPara((id,name) =>
{
Console.WriteLine("i=" + i);
Console.WriteLine($"{id}{name} 高级班");
});
method3.Invoke(123, 456);
}
{
//5.0 如何方法体只有一行,可以去掉大括号,分号
int i = 10;
WithReturnWithPara method3 = new WithReturnWithPara((id, name)
=>Console.WriteLine($"{id}{name} 高级班")
);
method3.Invoke(123, 456);
}
{
//6.0 可以省掉 new 关键字;
int i = 10;
WithReturnWithPara method3 = (id, name)=> Console.WriteLine($"{id}{name} 高级班");
method3.Invoke(123, 456);
}
{
WithReturnWithPara method = new WithReturnWithPara(Show3);
method += this.Show3;
method += (id, name) => Console.WriteLine();
}
{
//objec,var 匿名类3.0
object model = new
{
id = 2,
name = "csj",
age = 22
};
// model.id; 不能点出来字段,编译器不认可,只能传obj,运行时认可;
}
{
//4.0 dynamic 避开编译器检查
dynamic dmodel = new
{
Id=1,
name="csj"
};
Console.WriteLine(dmodel.Id);
}
{
//var 匿名类,是只读的,var是语法糖,由编译器自动推算
var vmodel = new
{
id = 3,
name = "csj"
};
Console.WriteLine(vmodel.id);
Console.WriteLine(vmodel.GetType());
//vmodel.id = 2;
}
相关文章
- Unity3D热更新全书-脚本(四) 用C#LightEvil搭建实际开发使用的脚本框架
- Why does the C# DataMember attribute allow serialization of private fields and properties?
- C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序
- 如何使用T-SQL备份还原数据库及c#如何调用执行? C#中索引器的作用和实现。 jquery控制元素的隐藏和显示的几种方法。 localStorage、sessionStorage用法总结 在AspNetCore中扩展Log系列 - 介绍开源类库的使用(一) span<T>之高性能字符串操作实测
- c#打包文件解压缩 C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法 一个简单例子理解C#的协变和逆变 对于过长字符串的大小比对
- 利用反射快速给Model实体赋值 使用 Task 简化异步编程 Guid ToString 格式知多少?(GUID 格式) Parallel Programming-实现并行操作的流水线(生产者、消费者) c# 无损高质量压缩图片代码 8种主要排序算法的C#实现 (一) 8种主要排序算法的C#实现 (二)
- c# 把一个匿名对象赋值给一个Object类型的变量后,怎么取这个变量? c# dynamic动态类型和匿名类 详解C# 匿名对象(匿名类型)、var、动态类型 dynamic 深入浅析C#中的var和dynamic
- C# 字符串拼接性能探索 c#中+、string.Concat、string.Format、StringBuilder.Append四种方式进行字符串拼接时的性能
- Word处理控件Aspose.Words功能演示:使用 C# 将 DOCX 转换为 HTML
- C#,初学琼林(05)——二分法查找(binary search,二分法搜索)数组内指定值的算法与源代码
- c#滚动条创建实例,多线程
- C#程序集系列02,使用记事本查看可执行程序集的IL代码
- c# 三种取整方法 向上取整 向下取整 四舍五入
- 基于C#+MySQL开发(WinForm)艾宾浩斯记忆曲线实现的背单词【100010304】
- C#匿名对象在其它方法体内怎么取到相应的值(不想建立对应的类并转化的情况下)?
- .Net那点事儿系列:C#操作Xml:通过XmlDocument读写Xml文档
- C# String和StringBuilder简介
- C#显示接口实现和隐式接口实现
- c#–无法将匿名方法转换为类型’System.Delegate’,因为它不是委托类型
- C#-IO-文件读写并显示文件读取进度
- c#代码规则,C#程序中元素的命名规范
- c#类的定义,c#中的关健字,C#标识符