Lambda表达式_匿名方法_委托
2017-09-16 11:30
591 查看
Lambda表达式_匿名方法_委托<16/9/2017>
代替匿名方法的简单演示:
Lambda表达式小技巧和使用规则
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lambda表达式
{
class Program
{
static void Main(string[] args)
{
//Lambda表达式用来代替匿名方法,所以一个lambda表达式也是定义了一个方法
//1.当参数只有一个的时候可以不加括号,当函数体的语句只有一句,可不加花括号,也可以不加上return语句(编译器会自动添加)
//2.当Lambda表达式实现代码中需要多条语句,必加花括号和return语句
Func<int, int> a = m => m + 1;
Func<int, int> b = (m) => { return m + 1; };
Console.WriteLine(a(1));
Console.WriteLine(b(2));
}
}
}
关于Lambda表达式对于外部变量的注意事项:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lambda表达式
{
class Program
{
static void Main(string[] args)
{
//Lambda表达式可以访问外部变量
int somVal = 5;
Func<int, int> f = x => x + somVal;
Console.WriteLine(f(3));//8
somVal = 7;
Console.WriteLine(f(3));//10
//方法结果不光受到参数控制,还受到somVal变量的控制,结果不可控(存在被其他因素更改的情况)
}
}
}
代替匿名方法的简单演示:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace lambda表达式 { class Program { static void Main(string[] args) { //lambda表达式用来代替匿名方法,所以一个lambda表达式也是定义了一个方法 Func<int, int, int> plus = delegate (int a, int b) { return a + b; }; Func<int, int, int> plusLambda = (a, b) =>//lambada表达式的参数不需要声明类型的 { return a + b; }; Console.WriteLine(plus); Console.WriteLine(plusLambda); Console.WriteLine(plus(1,2)); Console.WriteLine(plusLambda(2,4)); } } }
Lambda表达式小技巧和使用规则
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lambda表达式
{
class Program
{
static void Main(string[] args)
{
//Lambda表达式用来代替匿名方法,所以一个lambda表达式也是定义了一个方法
//1.当参数只有一个的时候可以不加括号,当函数体的语句只有一句,可不加花括号,也可以不加上return语句(编译器会自动添加)
//2.当Lambda表达式实现代码中需要多条语句,必加花括号和return语句
Func<int, int> a = m => m + 1;
Func<int, int> b = (m) => { return m + 1; };
Console.WriteLine(a(1));
Console.WriteLine(b(2));
}
}
}
关于Lambda表达式对于外部变量的注意事项:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lambda表达式
{
class Program
{
static void Main(string[] args)
{
//Lambda表达式可以访问外部变量
int somVal = 5;
Func<int, int> f = x => x + somVal;
Console.WriteLine(f(3));//8
somVal = 7;
Console.WriteLine(f(3));//10
//方法结果不光受到参数控制,还受到somVal变量的控制,结果不可控(存在被其他因素更改的情况)
}
}
}
相关文章推荐
- C# 从CIL代码了解委托,匿名方法,Lambda 表达式和闭包本质
- 委托、匿名方法、Lambda表达式的演进
- 十二、C# 委托与Lambda表达式(匿名方法的另一种写法)
- 匿名方法、委托和Lambda表达式区分演示(图文解释)
- 泛型委托及委托中所涉及到匿名方法、Lambda表达式
- 匿名方法、委托和Lambda表达式区分演示(图文解释)
- C# 匿名委托、匿名方法、匿名对象、Lambda表达式
- C# 委托的发展史: .Net 1.x 委托 =>.Net 2.x 匿名方法 => .Net 3.0/3.5 Lambda 表达式
- 委托、匿名方法、Lambda表达式的演进
- 通过Func 委托理解委托和匿名方法及Lambda 表达式
- 从委托到匿名方法,再到Lambda表达式
- .NET Framework System.Array.Sort 数组类,加深对 IComparer、IComparable 以及泛型委托、匿名方法、Lambda 表达式的理解
- 委托、匿名方法、Lambda表达式的演进
- 委托,匿名方法,Lambda 表达式 的关系
- 委托、匿名方法、Lambda表达式的演进
- 委托、匿名方法、Lambda表达式的演进
- 委托 匿名方法 Lambda表达式 总结(yuananl)
- 为LINQ服务的C#新特性总结篇---扩展方法,匿名委托,lambda表达式,Action委托,Func委托,Linq中的order by,top和sum函数
- 匿名方法、Lambda表达式、Func<>委托
- 每天学习一点.net(5) 利用匿名方法Lambda表达式(=>)实现委托