C# λ运算符=>匿名方法 lambda表达式
2014-09-24 21:04
399 查看
Lambda 表达式是一个匿名函数,是C# 3.0引入的新特性。Lambda 运算符=>,该运算符读为“goes to”。C#为委托提供一种机制,可以为委托定义匿名方
法,匿名方法没有名称,编译器会定指定一个名称。匿名方法中不能使用跳转语句跳转到该匿名方法的外部,也不能跳转到该方法的内部。也不能在匿名方法外部
使用的ref和out参数。
下面的代码简单的演示了Lambda表达式:
λ运算符 =>
左边是参数,使用括号表达 (string param),
右边是实现代码,使用花括号,如果代码只有一行,则不使用花括号和return关键字也可以,编译器会为我们添加。
这是λ表达式的简单实现:
1个参数:
2个或多个参数:两个或者多个参数不能使用简略的方式书写,必须使用小括号声明参数。
无参数:
法,匿名方法没有名称,编译器会定指定一个名称。匿名方法中不能使用跳转语句跳转到该匿名方法的外部,也不能跳转到该方法的内部。也不能在匿名方法外部
使用的ref和out参数。
下面的代码简单的演示了Lambda表达式:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Linq.Expressions; //using namespace Lambda { class Program { //委托方法 delegate string MyDelagate(string val); static void Main(string[] args) { string str1 = "匿名方法外部\n"; //中括号部分定义了一个方法,没有名称,编译器会自动指定一个名称 MyDelagate my = (string param) => { string str2 = "匿名方法内部\n"; return(param + str1 + str2); }; //调用委托的匿名方法 Console.WriteLine(my("参数\n")); //从结果可以看到,匿名方法同样达到了为委托定义实现体方法的效果 Console.Read(); } } }
λ运算符 =>
左边是参数,使用括号表达 (string param),
右边是实现代码,使用花括号,如果代码只有一行,则不使用花括号和return关键字也可以,编译器会为我们添加。
这是λ表达式的简单实现:
string str1 = " 匿名方法外部 "; string str2 = " 匿名方法内部 "; MyDelagate my = param => param + str1 + str2; Console.WriteLine(my(" 参数 "));
1个参数:
private delegate int MyDelagate(int i); MyDelagate test1 = x => x * x; MyDelagate test2 = (x) => x * x; MyDelagate test3 = (int x) => x * x; MyDelagate test4 = (int x) => { return x * x; }; Console.WriteLine(test1(10)); Console.WriteLine(test2(10)); Console.WriteLine(test3(10)); Console.WriteLine(test4(10));
2个或多个参数:两个或者多个参数不能使用简略的方式书写,必须使用小括号声明参数。
private delegate int MyDelagate(int x, int y); MyDelagate test1 = (x, y) => x * y; MyDelagate test2 = (int x, int y) => x * y; MyDelagate test3 = (int x, int y) => { return x * y; }; Console.WriteLine(test1(3,4)); Console.WriteLine(test2(3,4)); Console.WriteLine(test3(3,4));
无参数:
private delegate void Void(); void test11 = () => { Console.WriteLine("Void Params"); }; test11();
相关文章推荐
- C#笔记——lambda表达式(委托->匿名方法->lambda表达式)
- C# λ运算符=>匿名方法 lambda表达式
- C#==>匿名方法
- C# 新委托使用方法 Lambda表达式,运算符 =>
- 不能不说的C#特性-匿名方法和Lambda表达式
- C#笔记(1)--->基本语法 [运算符]
- C#中的委托,匿名方法和Lambda表达式
- 不能不说的C#特性-匿名方法和Lambda表达式
- 读<<CLR via C#>>总结(7) 以传引用的方式向方法传递参数---ref&out
- C#中的委托,匿名方法和Lambda表达式
- 委托是什么?匿名方法是什么?在C# 3.0中,Lambda表达式是什么?扩展方法是什么?LINQ是什么?您觉得C# 3.0中还有哪些重要的特性,它们带来了什么优势?BCL中哪些类库和这些特性有关?您平时最常用哪些
- C#==>密封类,密封方法
- C#中的委托,匿名方法和Lambda表达式
- .NET/C#中对对象集合进行查询的方法 以及相关的 Predicate<T> 及 Action<T> 的用法
- C#学习笔记-匿名方法和lambda表达式
- C# 委托的发展史: .Net 1.x 委托 =>.Net 2.x 匿名方法 => .Net 3.0/3.5 Lambda 表达式
- C#中的委托,匿名方法、泛型委托和Lambda表达式表达式演变过程
- 一种C#读写二进制文件的通用方法<转>
- C#中新特性的学习:Delegate、匿名方法、lambda表达式