C# =符号的使用

前言:

-. 读作 goes to,是C#3.0的新内容;

-. 字段定义时设置{ get; set; }属性的作用:

主要是为了外部访问的安全性封装字段,get set你自己可以设置限制条件,尤其是wpf绑定时,没有get set属性,界面是更新不了的。写上get,set这种访问器的叫属性,不写的叫字段,属性是proprerty,字段叫field

01

用法场景一:定义只读属性

看到这样一段代码:

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字段设置为了只读属性,同时进行了赋值。

我们可以在控制台中进行验证:

5ca5d6f49930d58dfb4ef735625a93f4.png

去掉> 则错误提示就会消失。

02


用法场景二:Lambda表达式,匿名委托

Lambda表达式。
Lambda表达式是C#3.0的新内容,如果您之前学习的C#2.0,不认识也就不奇怪了。
给您举个例子。
例如,我定义一个委托:
delegate int Method(int a, int b);
再定义一个方法:
int Add(int a, int b)
{
return a + b;
}
我可能需要这样通过委托调用方法:
Method m += Add;
Console.WriteLine(m(2, 3));
====================================================
但如果用 Lambda 表达式:
Method m += (a ,b) => a + b;
Console.WriteLine(m(2, 3));
可以省去方法的定义。
实际上, Lambda 表达式只是简化了匿名方法的语法而已。

附 C# 2.0 的匿名方法语法:
Method m += delegate(int a, int b) { return a + b; };
Console.WriteLine(m(2, 3));

*******************************************************************************

C#中 += (s, e) => 这些字符什么意思

public MainWindow()
{
InitializeComponent();
this.Loaded += (s, e) => DiscoverKinectSensor();
this.Unloaded += (s, e) => this.kinect = null;
}

在上面的代码中,+=是在委托链上增加一个委托,(s,e) =>是一个lambda表达式,这个表达式创建一个委托,委托处理的主体就是=> 后面的部分。

其实这个写法相当于
this.Loaded += new EventHandler(Form_Loaded);

private void Form_Loaded(object sender,   EventArgs e) {
    DiscoverKinectSensor();
}

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/286941.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【无人机组装与调试】第二章 关于新西达30A电调说明书的问题

【无人机组装与调试】系列课程全集: 第一章 概述 第二章 关于新西达30A电调说明书的问题 第三章 舵机安装与调整 第四章 F450四轴装机实例-选择机型、需要的器材工具材料 第五章 无人机遥控器 第六章 电调、电池、电机 极限使用:   持续电流30A,瞬间35A ,40A持续10秒。 外…

所有方向你要的资料干货这都有,从入门到实战!【CSDN宝藏资料图鉴第一期】

前言 CSDN 是全球知名的开发者社区,创建于1999年,经过20来年的知识文档积累已然成为中文开发者的知识宝库;从基础的法入门到蜕变实战案例、从神秘前沿技术到清晰的实践步骤,可以说CSDN是你找寻资料的最佳宝库,只要你想…

Spark官方调优文档翻译(转载)

Spark调优 由于大部分Spark计算都是在内存中完成的,所以Spark程序的瓶颈可能由集群中任意一种资源导致,如:CPU、网络带宽、或者内存等。最常见的情况是,数据能装进内存,而瓶颈是网络带宽;当然,有…

《DOS命令全集(中英文对照)》CHM版.CHM

http://pan.baidu.com/s/1pLrhAzx转载于:https://www.cnblogs.com/micro-chen/p/5692802.html

判断一个字符串是否为另外一个字符串旋转之后的字符串。

★判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 = AABCD和s2 BCDAA,返回1,给定s1abcd和s2ACBD,返回0.AABCD左旋一个字符得到ABCDA AABCD右旋一个字符得到DAABC AABCD左旋两…

Flutter之Padding

1 、Padding介绍 Padding用来为子元素添加填充,也就是指定子元素与容器边界的距离,作用基本上与Android中ViewGroup的padding属性差不多 const Padding({Key key,required this.padding,Widget child,}) : assert(padding ! null),super(key: key, chil…

【无人机组装与调试】第三章 舵机安装与调整

【无人机组装与调试】系列课程全集: 第一章 概述 第二章 关于新西达30A电调说明书的问题 第三章 舵机安装与调整 第四章 F450四轴装机实例-选择机型、需要的器材工具材料 第五章 无人机遥控器 第六章 电调、电池、电机 舵机就是一种有输出轴的小传动装置。这个输出轴能够通过向…

其实python面向对象3分钟就可以入门(14)

本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将会逐步更新。 若…

定制ASP.NET 6.0的应用配置

大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进。本文的主题是应用程序配置。要介绍的是如何使用配置、如何自定义配置,以采用不同的方…

mysql optimization

EXPLAIN 命令详解 http://www.cnblogs.com/gomysql/p/3720123.html http://www.cnblogs.com/Aiapple/p/5697229.html http://www.cnblogs.com/xuanzhi201111/p/4175635.html https://dev.mysql.com/doc/refman/5.7/en/optimization.html Mysql 执行计划(Explain&…

云服务器cpu性能,云服务器cpu性能

云服务器cpu性能 内容精选换一换CPU积分是一种用来衡量云服务器计算、存储以及网络配置利用率的方式。云服务器利用CPU积分机制保证云服务器基准性能,解决超分云服务器长期占用CPU资源的问题。使用CPU积分机制的弹性云服务器适用于平时CPU负载不高、但突发时可接受因…

Flutter之Decoration

1、不废话,先爆照看效果 2、Decoration介绍 Flutter的Decoration可以设置:背景色 背景图 边框 圆角 阴影 渐变色 的等属性,有点像android里面的shape,Decoration 是基类,它的子类有下面这些 BoxDecoration:实现边框、…

DRBD 部署

主备模式DRBD1:eth0:10.0.0.3eth1:172.16.1.3 用于心跳线和数据同步(在工作中,一般把心跳线分开)DRBD2:eth0:10.0.0.4eth1:172.16.1.4 用于心跳线和数据同步(在工作中,一…

.net 服务器端自定义分页控件 简单示例

使用效果如图&#xff1a; 先将控件添加到工具箱 将控件拖入到页面 会自动生成如下代码 <pager:pager ID"Pager1" runat"server" Pagesize"2" OnPageIndexChange"Pager1_PageIndexChange1"> </pager:pager> 后台代码自己…

XenApp_XenDesktop_7.6实战篇之十五:StoreFront的配置

1. StoreFront服务器证书申请 我们将为StoreFront 申请Web 服务器证书&#xff0c;将此证书应用到StoreFront 的IIS 站点上&#xff0c;并将IIS 的443 端口绑定此证书&#xff0c;以使我们从内网可以安全访问StoreFront 站点。也为后续的与NetScaler 集成做好准备。 1.1 在开…

【无人机组装与调试】第四章 F450四轴装机实例-选择机型、需要的器材工具材料

【无人机组装与调试】系列课程全集: 第一章 概述 第二章 关于新西达30A电调说明书的问题 第三章 舵机安装与调整 第四章 F450四轴装机实例-选择机型、需要的器材工具材料 第五章 无人机遥控器 第六章 电调、电池、电机 第四章 F450四轴装机实例-选择机型、需要的器材工具材料…

面向对象类的使用(15)

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…

服务器安装红帽系统进入不图形界面,CentOS 安装图形化界面方法

登录系统&#xff0c;使用yum 安装#yum groupinstall X Window System -y安装GNOME桌面环境#yum groupinstall GNOME Desktop Environment -y如果安装KDE桌面环境#yum groupinstall KDE (K Desktop Environment) -y如果发生错误&#xff1a;Warning: Group GNOME Desktop Env…

Mybatis批量更新数据

Mybatis批量更新数据 第一种方式 [html] view plaincopy print?<update id"updateBatch" parameterType"Map"> update aa set a#{fptm}, b#{csoftrain} where c in …

MASA Auth - SSO与Identity设计

AAAAAAAA即认证、授权、审计、账号&#xff08;Authentication、Authorization、Audit、Account&#xff09;。在安全领域我们绕不开的两个问题&#xff1a;授权过程可靠&#xff1a;让第三方程序能够访问所需资源又不泄露用户数据&#xff0c;常用的多方授权协议主要有 OAuth2…