【原译】使用匿名函数增强程序的可读性
2012-01-07 07:53
204 查看
免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作!
原文链接地址:http://blog.csharptutor.com/2011/10/05/making-code-more-readable-with-anonymous-functions/
如果你使用过javascript,你可能通常使用已经定义好的click事件,来激活你定义的事件,比如下面这段代码
这段代码安全并且无错误,对我来说理解也很容易。可读性也很好。我认为可读性很重要
那么如何应用在C#开发中呢
看看下面这段来自一个WPF程序的代码
这段代码是可以简化一些的。事实上,现在你根本不用写 “new RoutedEventHandler”这部分。
现在,这似乎暗示我们有一个名为button_Click的方法。大概是这个样子
在我遇到的很多情况下,你也许并不像在 event-handler中处理任何实际的代码,
那么我们怎么样能使程序更简单并且在Click的事件指派中找到一点感觉。
使用匿名函数
首先,你通常可以写出这样的代码。(把button_Click匿名了)
而这又是可以被简化的
即使你想在Click事件中调用不止一个的方法(使用匿名函数),都会很简单,因为你可以从上面那行代码中看出来到底发生了什么(校验输入),你也就不必跳转到Click函数去看看里面到底干了什么。
当然这肯定不是使用匿名函数的唯一的地方。我自己最常用的是当我想要创建一个新的任务的时候。像这样。注:这个匿名函数没有参数。
其余的就不赘述了,在你实际做的时候,匿名函数将会使你的程序可读性更强,至少在我看来是这样的。
著作权声明:本文由http://www.cnblogs.com/lazycoding翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!
原文链接地址:http://blog.csharptutor.com/2011/10/05/making-code-more-readable-with-anonymous-functions/
如果你使用过javascript,你可能通常使用已经定义好的click事件,来激活你定义的事件,比如下面这段代码
$("#submit").click(function(){ performPostAndRedirect(); });
这段代码安全并且无错误,对我来说理解也很容易。可读性也很好。我认为可读性很重要
那么如何应用在C#开发中呢
看看下面这段来自一个WPF程序的代码
var button = new Button(); button.Click += new RoutedEventHandler(button_Click);
这段代码是可以简化一些的。事实上,现在你根本不用写 “new RoutedEventHandler”这部分。
button.Click += button_Click
现在,这似乎暗示我们有一个名为button_Click的方法。大概是这个样子
void button_Click(object sender, RoutedEventArgs e) { throw new NotImplementedException(); }
在我遇到的很多情况下,你也许并不像在 event-handler中处理任何实际的代码,
那么我们怎么样能使程序更简单并且在Click的事件指派中找到一点感觉。
使用匿名函数
首先,你通常可以写出这样的代码。(把button_Click匿名了)
button.Click += (object sender, RoutedEventArgs e) => { ValidateInput(); };
而这又是可以被简化的
button.Click += (sender, e) => { ValidateInput(); };
即使你想在Click事件中调用不止一个的方法(使用匿名函数),都会很简单,因为你可以从上面那行代码中看出来到底发生了什么(校验输入),你也就不必跳转到Click函数去看看里面到底干了什么。
当然这肯定不是使用匿名函数的唯一的地方。我自己最常用的是当我想要创建一个新的任务的时候。像这样。注:这个匿名函数没有参数。
Task.Factory.StartNew(() => { PerformTimeConsumingOperation(); ValidateOperation(); });
其余的就不赘述了,在你实际做的时候,匿名函数将会使你的程序可读性更强,至少在我看来是这样的。
著作权声明:本文由http://www.cnblogs.com/lazycoding翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!
相关文章推荐
- 使用CreateProcess函数实现隐秘的程序调用之二:使用匿名管道
- 使用CreateProcess函数实现隐秘的程序调用之二:使用匿名管道
- C++中嵌入python程序——使用API接口,从函数到类
- GUI程序如何使用控制台输出调试信息[zz][MFC调用win32窗口显示调试信息,使用AllocConsole 函数 ]
- [转]php中使用ignore_user_abort()函数后,如何停止后台运行的程序?
- 使用gprof 或 valgrind查看函数调用频率及程序性能瓶颈调试
- Python入门-函数的使用到程序的公布安装
- PHP程序中各函数的使用
- 使用KEIL模板程序时遇到函数undefined symbol函数(转)
- 进程序名得到进程ID和句柄与进程的公司名(使用快照和GetPeFileCompany和VerQueryValueW等函数)
- 改善C++ 程序的150个建议学习之建议20:使用memcpy()系列函数时要足够小心
- 显示程序使用最大内存函数
- 由使用Scanf()函数导致程序逻辑错误引发的思考
- 2014-03-13周四:Setlocale函数设置当前程序使用的本地化信息
- 在后端是PHP程序的情况下,保持前端Javascript和PHP之间传值的统一编码可以使用以下函数进行处理:
- C#中的匿名函数使用,类名<T>
- 串口程序中函数使用WaitCommEvent、ClearCommError、GetcommMask
- 超精简C#程序代码改进-利用扩展方法简化代码增强可读性
- 编写高质量代码改善C#程序的157个建议[为泛型指定初始值、使用委托声明、使用Lambda替代方法和匿名方法]
- 编写高质量代码改善C#程序的157个建议——建议37:使用Lambda表达式代替方法和匿名方法