lambda是一种什么运算符?
=> 运算符可解读为“goes to”,意思为「移至」,称作 lambda 运算符。符号前面是声明变量(就是你写的小c),后面是表达式( c.name == id && c.password == pwd)。
该标记在 lambda 表达式中用来将左侧的输入变量与右侧的 lambda 体分离。Lambda 表达式是与匿名方法类似的内联表达式,但更加灵活;在以方法语法表示的 LINQ 查询中广泛使用了 Lambda 表达式。
Lambda表达式 RelayCommand(() => this.AddPerson(), () => this.CanAddPerson());
可以翻译为 RelayCommand(参数一, 参数二)。参数一 :() => this.AddPerson() 参数二 :() => this.CanAddPerson() 。() => this.AddPerson() 的意思是 一个没有参数的方法,返回this.AddPerson() 而这个返回值的类型不用指定 系统会自动判断 。同理 () => this.CanAddPerson() 就是 一个没有参数的方法返回this.CanAddPerson()
举例:
Func<int, int, int> Add = (x, y) => x + y;
Console.WriteLine(Add(2, 3)); // 5
扩展资料:
下列规则适用于 Lambda 表达式中的变量范围:
1、捕获的变量将不会被作为垃圾回收,直至引用变量的委托超出范围为止。
2、在外部方法中看不到 Lambda 表达式内引入的变量。
3、Lambda 表达式无法从封闭方法中直接捕获 ref 或 out 参数。
4、Lambda 表达式中的返回语句不会导致封闭方法返回。
5、Lambda 表达式不能包含其目标位于所包含匿名函数主体外部或内部的 goto 语句、break 语句或 continue 语句。
6、Lambda表达式的本质是“匿名方法”,即当编译我们的程序代码时,“编译器”会自动将“Lambda表达式”转换为“匿名方法”。
参考资料: