C# =号加上>号,等于”=>“在C#中使用

1,452 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情

前言:

我们在使用C#编程的时候,经常会用到=>这个符号,你用过的话你就知道是什么意思,你没用过就会感觉一个等于号加上一个大于号起什么作用呢,今天我们就来学习一下关于=>的使用,=>主要有两方面的作用,一个限制属性状态,另一个简化匿名委托和Lambda,那么我今天就来学一下,内容比较简单,希望大家勿喷,创作不易,大家顺便点点赞吧,你的点赞收藏关注,是我写文章的动力,栓Q啦。

12354689123110.gif

=>概念

"=>"在C#中就叫做Lamda运算符,读作goes to 用处:msdn里面说用来将左侧的输入变量与右侧的lambda体分离。

C# (5).png

=>定义只读属性

在定义实体类的时候,我们使用鼠标右键快速构建属性,就会发现,=>用来构建属性

public class Test
{  
    public string name => "IC00";
    public string Name { get; set; }
 }
public class Test_IC00
{   
    public string name => "IC";
    public string Name { get; set; }
    }

public string name => "IC00"; 这里=>的用法相当于 { get; } = 即:将Sex字段设置为了只读属性,同时进行了赋值。 public string Sex { get;  } = "IC00"

=> Lambda表达式,匿名委托

例如定义一个委托:  
delegate int DeMethod(int a, int b);  
再定义一个方法:  
int Add(int a, int b)  
{  
return a + b;  
}  

我可能需要这样通过委托调用方法:

DeMethod m += Add;  
Console.WriteLine(m(2, 3));

匿名方法语法

采用 C# 2.0 的匿名方法语法:  
DeMethod m += delegate(int a, int b) { return a + b; };  
Console.WriteLine(m(2, 3));
采用C#3.0  Lambda 表达式:  
DeMethod m += (a ,b) => a + b;  
Console.WriteLine(m(2, 3));  
可以省去方法的定义。  
实际上, Lambda 表达式只是简化了匿名方法的语法而已。
最后C#中 += (s, e) => 这些字符什么意思
public MainWindow()
{
InitializeComponent();
this.Loaded += (s, e) => InitSomeConfig();
this.Unloaded += (s, e) => this.Value= null;
}

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

this.Loaded += new EventHandler(Form_Loaded);    
private void Form_Loaded(object sender,   EventArgs e) {  
    InitSomeConfig ();  
}

总结

这篇文章比较简单,只是简单的学习一下,对它有更多的认识,在有需求的时候最起码有路子,虽然很简单,但是也是可以学到东西的,我们学习了新的知识,对我们的知识储备及技术又有新的一点点的进步,C#的技术就是先简单再难嘛,积少成多之后才会成长才会进步,我们要不断的学习不断的探索,才能有学习的动力,才会有学习的欲望,东西不多,但是实用性挺强建议收藏一下,哈哈哈哈,如果你觉得这篇文章对你有用,点赞最实在,创作不易,点赞评论收藏关注,嘿嘿,不喜勿喷!!!!

520520.gif