C# Lambda表达式=>符号的使用-C/S开发框架

前言
-. 读作 goes to,是C#3.0的新内容;
-.字段定义时设置{ get; set; }属性的作用:
主要是为了外部访问的安全性封装字段,get set你自己可以设置限制条件,尤其是wpf绑定时,没有get set属性,界面是更新不了的。写上get,set这种访问器的叫属性,不写的叫字段,属性是proprerty,字段叫field
用法场景一:定义只读属性
看到这样一段代码:
public class Man : IPerson
{
public string Sex => "男";
public string Name { get; set; }
}
public class Woman : IPerson
{
public string Sex => "女";
public string Name { get; set; }
}
大家可能会有疑问?为什么用=>
public string Sex => "男";
而不是这样去赋值
public string Sex { get; set; } = "男";
其实在这里=>的用法相当于{ get; } = 即:将Sex字段设置为了只读属性,同时进行了赋值。
我们可以在控制台中进行验证:

去掉>则错误提示就会消失。
用法场景二:Lambda表达式,匿名委托
Lambda表达式。
Lambda表达式是C#3.0的新内容,如果您之前学习的C#2.0,不认识也就不奇怪了。
给您举个例子。
例如,我定义一个委托:
delegate int Method(int a, int b);
再定义一个方法:
C# 全选
int Add(int a, int b)
{
return a + b;
}
我可能需要这样通过委托调用方法:
C# 全选
Method m += Add;
Console.WriteLine(m(2, 3));
====================================================
但如果用 Lambda 表达式:
C# 全选
Method m += (a ,b) => a + b;
Console.WriteLine(m(2, 3));
可以省去方法的定义。
实际上, Lambda 表达式只是简化了匿名方法的语法而已。
附 C# 2.0 的匿名方法语法:
C# 全选
Method m += delegate(int a, int b) { return a + b; };
Console.WriteLine(m(2, 3));
*******************************************************************************
C#中 += (s, e) => 这些字符什么意思
C# 全选
public MainWindow()
{
InitializeComponent();
this.Loaded += (s, e) => DiscoverKinectSensor();
this.Unloaded += (s, e) => this.kinect = null;
}
在上面的代码中,+=是在委托链上增加一个委托,(s,e) =>是一个lambda表达式,这个表达式创建一个委托,委托处理的主体就是=> 后面的部分。
其实这个写法相当于
C# 全选
this.Loaded += new EventHandler(Form_Loaded);
private void Form_Loaded(object sender, EventArgs e) {
DiscoverKinectSensor();
}

参考文档:
C#使用正则表达式移除所有的Html标记,返回纯文本-C/S开发框架
C#的Expression表达式使用方法-C/S开发框架
C#正则表达式判断URL是否正确-C/S开发框架
C#.NET各版本常用语法糖大全(C#3~C#10)|C/S开发框架
C# .NET 入门概念与知识点总结|C/S开发框架
C#/.NET 基础学习|C/S开发框架
C#异步编程(多线程)-C/S开发框架
C#.NET RESTFul API详解-C/S开发框架
C# LINQ使用案例参考-C/S开发框架
C#统计List 字符串属性长度(返回每个属性的最大长度)|C/S开发框架
C#获取MAC地址包括物理网卡和虚拟网卡|C/S开发框架
达梦数据库 | 获取表结构的SQL脚本|C/S开发框架
CSFrameworkV6旗舰版:获取主菜单、模块菜单、用户有权限的菜单|C/S开发框架
CSFrameworkV6旗舰版 | 基础资料窗体改装主从子表(多级明细表)解决方案|C/S开发框架
C/S结构快速开发框架使用的DevExpress常用组件|C/S开发框架
Oracle数据库元数据查询(数据库、表结构、存储过程)|C/S开发框架
C#使用正则表达式移除所有的Html标记,返回纯文本-C/S开发框架
C#的Expression表达式使用方法-C/S开发框架
C#正则表达式判断URL是否正确-C/S开发框架
C#.NET各版本常用语法糖大全(C#3~C#10)|C/S开发框架
C# .NET 入门概念与知识点总结|C/S开发框架
C#/.NET 基础学习|C/S开发框架
C#异步编程(多线程)-C/S开发框架
C#.NET RESTFul API详解-C/S开发框架
C# LINQ使用案例参考-C/S开发框架
C#统计List 字符串属性长度(返回每个属性的最大长度)|C/S开发框架
C#获取MAC地址包括物理网卡和虚拟网卡|C/S开发框架
达梦数据库 | 获取表结构的SQL脚本|C/S开发框架
CSFrameworkV6旗舰版:获取主菜单、模块菜单、用户有权限的菜单|C/S开发框架
CSFrameworkV6旗舰版 | 基础资料窗体改装主从子表(多级明细表)解决方案|C/S开发框架
C/S结构快速开发框架使用的DevExpress常用组件|C/S开发框架
Oracle数据库元数据查询(数据库、表结构、存储过程)|C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
