"女";......_c# =>">
当前位置:   article > 正文

C# =>实用详解_c# =>

c# =>

我们在使用C#编程的时候,经常会用到=>这个符号,但是大家理解过其中的具体用法吗?

=>主要有两方面的作用,一个限制属性状态,另一个简化匿名委托和Lambda


用法一:定义只读属性

  1. public class ManPeople {     public string Sex => "男";
  2.     public string Name { get; set; }}
  3. public class WomanPeople {    public string Sex => "女";
  4.     public string Name { get; set; }}

public string Sex => "男";

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

public string Sex { get;  } = "男"


用法二: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) => 这些字符什么意思

  1. public MainWindow()
  2. {
  3. InitializeComponent();
  4. this.Loaded += (s, e) => InitSomeConfig();
  5. this.Unloaded += (s, e) => this.Value= null;
  6. }

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

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

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

    该文章知识作为个人笔记,大部分知识来源于书本或网络整理总结;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/115680
推荐阅读
相关标签
  

闽ICP备14008679号