【转】编写高质量代码改善C#程序的157个建议——建议37:使用Lambda表达式代替方法和匿名方法
2021-04-24 21:26
标签:数据 语法 改善 功能 需要 stat 质量 注意 pre 建议37:使用Lambda表达式代替方法和匿名方法 在建议36中,我们创建了这样一个实例程序: 实际上要完成相同的功能,还有很多种编码方式。先看一种最中规中矩的,也是最繁琐的写法: 注意:上面的语法虽然繁琐,但是我们可以从中加深对委托本质的认识:委托也是一种数据类型,跟任何FCL 中的引用类型没有差别。 也可以使用匿名方法: print(add(1, 2).ToString()); 使用匿名方法后,我们就不需要再Main方法外部声明两个方法了,可以直接在Main这个工作方法中完成所有代码编写,而不会影响代码清晰性。实际上,所有代码行数不超过3行的方法(条件是它不被重用),我们都建议采用这种方式来编写。 上面的改进版本为: print(add(1, 2).ToString()); 最终改进版本是使用Lambda表达式: Lambda表达式操作符“=>”的左侧是方法的参数,右侧是方法体,其本质是匿名方法。实际上,经过编译后的Lambda表达式就是一个匿名方法。我们应该在实际编码中熟练运用它,避免出现繁琐且不美观的代码。 转自:《编写高质量代码改善C#程序的157个建议》陆敏技 【转】编写高质量代码改善C#程序的157个建议——建议37:使用Lambda表达式代替方法和匿名方法 标签:数据 语法 改善 功能 需要 stat 质量 注意 pre 原文地址:http://www.cnblogs.com/farmer-y/p/7943722.html static void Main(string[] args)
{
Funcint, int, int> add = Add;
Actionstring> print = Print;
print(add(1, 2).ToString());
}
static int Add(int i, int j)
{
return i + j;
}
static void Print(string msg)
{
Console.WriteLine(msg);
}
static void Main(string[] args)
{
Funcint, int, int> add = new Func
Funcint,int,int> add=new Funcint, int, int>(delegate(int i, int j)
{
return i + j;
});
Actionstring> print=new Actionstring>(delegate(string msg)
{
Console.WriteLine(msg);
});
Funcint,int,int> add=delegate(int i, int j)
{
return i + j;
};
Actionstring> print=delegate(string msg)
{
Console.WriteLine(msg);
};
Funcint,int,int> add= (i, j) => i + j;
Actionstring> print= msg => Console.WriteLine(msg);
print(add(1, 2).ToString());
文章标题:【转】编写高质量代码改善C#程序的157个建议——建议37:使用Lambda表达式代替方法和匿名方法
文章链接:http://soscw.com/index.php/essay/79109.html