写点什么

=>符号使用场景

作者:喵叔
  • 2021 年 12 月 19 日
  • 本文字数:760 字

    阅读完需:约 2 分钟

=>在 C#项目开发中会经常被用到,但是有相当一部分的开发人员并不清楚怎么读和它的使用场景,那么这篇文章我就来带领大家详细学习一下=>的使用场景。

怎么读?

首先=>读作 goes to /gəʊz tuː/。

使用场景

定义只读属性


我们先来看一段代码:


public class Man : IPet{  public string Title=> "猫咪";  public string Sex { get; set; }}
public class Woman : IPet{ public string Title=> "狗狗"; public string Sex{ get; set; }}
复制代码


看到上面的代码是不是会有疑问?为什么用=>而不去直接赋值呢?其实这里=>的用法和 { get; }=类似,都是将 Title 字段设置为只读属性,同时进行了赋值。如果我们向 Title 赋值 IDE 将提示我们错误,如下图:



匿名委托


我们来看个例子:


//定义委托delegate int WT(int a, int b);//定义方法int Add(int a, int b){  return a * b;}//调用委托WT wt += Add;Console.WriteLine(wt(99, 98));
复制代码


上面的代码看着稍显复杂,但时用了 Lambda 表达式后就简单了:


delegate int WT(int a, int b);WT wt += (a ,b) => a * b;Console.WriteLine(wt(99, 98));
复制代码


这样做可以节省定义方法的代码。实际上 Lambda 表达式简化了匿名方法的语法。我们在一些代码中会看到这样的代码 += (s, e) =>,那么这些字符是什么意思呢?其实 +=是在委托链上增加一个委托,而(s,e) =>则是 lambda 表达式,它创建了一个委托,委托处理的主体就是=>后面的部分。例如下面的代码:


this.Loaded += (s, e) => DiscoverKinectSensor();this.Unloaded += (s, e) => this.kinect = null;
复制代码


相当于如下写法:


this.Loaded += new EventHandler(Form_Loaded);private void Form_Loaded(object sender,   EventArgs e) {    DiscoverKinectSensor();}
复制代码

总结

本篇文章主要讲解了=>的使用,一个是定义只读属性,一个是匿名委托,这两个场景需要牢记。

用户头像

喵叔

关注

还未添加个人签名 2020.01.14 加入

还未添加个人简介

评论

发布
暂无评论
=>符号使用场景