=>符号使用场景

简介: =>符号使用场景

=>在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将提示我们错误,如下图:

image.png

匿名委托

我们来看个例子:

//定义委托
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();
}

总结

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

目录
相关文章
|
6月前
|
存储 C语言
C语言中如何选择合适的方式将整数转换为浮点数
C语言中如何选择合适的方式将整数转换为浮点数
1490 0
|
6月前
|
C语言
【C语言】大小写字母的相互转化:多种方法解析及原理说明
【C语言】大小写字母的相互转化:多种方法解析及原理说明
393 0
|
2月前
|
JavaScript
typeScript基础(2)_any任意值类型和类型推论
本文介绍了TypeScript中的`any`任意值类型,它可以赋值为其他任何类型。同时,文章还解释了TypeScript中的类型推论机制,即在没有明确指定类型时,TypeScript如何根据变量的初始赋值来推断其类型。如果变量初始化时未指定类型,将被推断为`any`类型,从而允许赋予任何类型的值。
55 4
|
3月前
运算符有哪些?优先级是怎么样的?转换数据类型的方法?(最少4种)
运算符有哪些?优先级是怎么样的?转换数据类型的方法?(最少4种)
25 0
|
4月前
|
算法 Python
堆栈应用于通用进制转换和表达式转换
【7月更文挑战第5天】该文主要介绍两种转换方法:还提供了完整的Python代码实现,包括进制转换函数`transfAny`和中缀到后缀表达式转换的`infixToPostfix`函数。
36 2
|
6月前
|
存储 人工智能 程序员
溢出、截断、类型提升:从易错代码入手分析整型数据存储与类型转换
这篇文章介绍了关于数据在内存中的存储以及可能出现的溢出问题,包括整型数据的存储方式、取值范围以及溢出的现象和原因。文章通过例子和罗盘图解释了整型数据溢出时的计算过程,并指出在进行运算时要注意数据类型的转换和可能的溢出情况。此外,文章还给出了几个练习题,帮助读者理解和应用这些知识。
180 0
|
6月前
什么是扩展运算符?使用场景
什么是扩展运算符?使用场景
61 0
|
6月前
什么是扩展运算符?有什么使用场景?
什么是扩展运算符?有什么使用场景?
|
前端开发
形成新数组的方式扩展运算符
形成新数组的方式扩展运算符
39 0
|
编译器 C++
c++中基本类型详细解释外加基本运算规则
类型 含义 wchat_t 宽字符 bool 布尔类型 char 字符 chat16_t unicode字符 chat_32 unicode字符 short 短整型 int 整形 long 长整型 longlong 长整型 float 单精度浮点型 double 双精度浮点型 longdouble 扩展精度浮点型
116 1