前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >=>符号使用场景

=>符号使用场景

作者头像
喵叔
发布2021-12-20 10:19:29
5260
发布2021-12-20 10:19:29
举报
文章被收录于专栏:喵叔's 专栏

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

怎么读?

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

使用场景
定义只读属性

我们先来看一段代码:

代码语言:javascript
复制
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将提示我们错误,如下图:

在这里插入图片描述
在这里插入图片描述
匿名委托

我们来看个例子:

代码语言:javascript
复制
//定义委托
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 表达式后就简单了:

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

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

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

相当于如下写法:

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/12/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 怎么读?
  • 使用场景
    • 定义只读属性
      • 匿名委托
      • 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档