前面我曾经讨论过Lambda表达式(也就是匿名表达式)的用法, 这里我就主要强调一下匿名表达式的好处。

首先是不需要写多余的方法体,特别是订阅事件的时候,但是也有一个问题,那就是单个方法会因为匿名表达式的缘故代码块变得很大:

这串代码是三个月前写的,但是因为一次意外删除和保存代码的进度突然就回滚到了四个月前的地方了,所以这里看起来不明显,但是你还是能看到一些端倪的,在事件上面使用匿名表达式还好,但是如果你在方法里面用匿名表达式,最后代码会变成这样:

万不得已不要将匿名表达式写太长,这张图上的代码就是这么糟糕,不是写的不好,而是组织的不好。

这张图是写异步方法时候,但这还不是最糟糕的,我记得三个月前我的项目这里的代码是最烂的,因为我在匿名表达式里面有使用了一次匿名表达式。

这是VisualStudio的新特性,使用匿名表达式为属性赋值,这个比较简洁,所以并不坏,值得吐槽的是每个函数上面的Summary,港真,千万别写Summary,而且也别折叠方法,不然效果就是这样的

至今我还在头痛,因为代码组织的实在是不堪入目,我在这里也要提醒一下大家,在使用浅色颜色主题的时候,一定要修改VisualStudio的注释配色方案,因为折叠之后Summary注释很容易与折叠后的方法体混在一起,如果你下次继续写,我觉得这样会一点没有头绪。

上面这张图还好说,没有太烂。

到这里我再实际总结一下。匿名表达式是一个很好用的东西,简洁方便,但是还是要注意适用场合。

第一,如果你在一般公司里面做项目的时候,能不用匿名表达式就不要用,这不是炫耀自己牛逼,而是把自己往火坑里推,因为不是每个人都是大神,你要照顾每个人的编码水平,不然只有产品狗或者你的组长找你“热聊”的份,就算在大公司的地方我觉得还是少用一些比较好,因为匿名表达式唯一的坏处就是不好组织,如果你一个人扛整个项目,当我没说,你开心就好。

第二,匿名表达式挺好用的,但是注释方面要记得组织好一些,不然回头修改的时候会很头痛。

这里我要另外吐槽一下,

第一,浅色主题千万别折叠方法体,特别是折叠了Summary注释之后,如果你折叠了,很好,你可以参照一下图④,当然自身实力有限。

第二,一定要改颜色!!!!!!!!!!!!

同样折叠了方法体和Summary注释,但是辨析度比浅色主题高了不知道多少倍去了。

还有就是善用#region 标记,这个标记可以很好地组织代码,让人一眼就能看出来。

3.就是有一个良好的编码习惯,我现在一般喜欢把构造函数放一块,公开的方法放一块,变量定义放一块,然后事件放一块:

这是微软官方的注释形式,他们会在一个方法上面使用//进行注释,折叠之后你就会看到它实际上在修饰符前面隐藏,他不会影响阅读代码了

吐槽:Lambda表达式的更多相关文章

  1. java8中lambda表达式的应用,以及一些泛型相关

    语法部分就不写了,我们直接抛出一个实际问题,看看java8的这些新特性究竟能给我们带来哪些便利 顺带用到一些泛型编程,一切都是为了简化代码 场景: 一个数据类,用于记录职工信息 public clas ...

  2. Java8初体验(一)lambda表达式语法

    感谢同事[天锦]的投稿.投稿请联系 tengfei@ifeve.com 本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解 ...

  3. Java8学习笔记----Lambda表达式 (转)

    Java8学习笔记----Lambda表达式 天锦 2014-03-24 16:43:30 发表于:ATA之家       本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人 ...

  4. C++雾中风景8:Lambda表达式

    上一篇C++的博客是Long Long ago了,前文讲到在看Lambda表达式的内容.笔者首次接触Lambda表达式应该是学习Python语言的时候,当时也不太明白这种表达方式的精髓,后续接触了Sc ...

  5. Java8 lambda表达式语法 1

    本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化.本文是该系列的第一篇, ...

  6. Java8初体验(1):lambda表达式语法

    原文出处: 一冰_天锦 本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化 ...

  7. Lambda表达式的参数捕获

    以常用的Action委托为例: 有如下3个无参数的方法: public void Function() { //Do something } public void Function2() { //D ...

  8. 无情的Java 8 之 Stream和lambda表达式篇

    不好意思,最近刷小视频刷的有点上头 看到这图就不自觉的要来一句:"卧槽,无情" 好了,我要开始正经了 JAVA 8 已经推出有一段时间了, 相比之前, 我们操作集合的方式应该是这样 ...

  9. 夯实Java基础(二十二)——Java8新特性之Lambda表达式

    1.前言 Java 8于14年发布到现在已经有5年时间了,经过时间的磨练,毫无疑问,Java 8是继Java 5(发布于2004年)之后的又一个非常最重要的版本.因为Java 8里面出现了非常多新的特 ...

随机推荐

  1. TOAD Menu Shortcuts 快捷键

    TOAD Menu Shortcuts Category Command Shortcut Conflict File AWR Browser File Compare Files File DBMS ...

  2. [App]Xamarin First(Or Last One) App

    这个应用简单得无以复加,主要是熟悉了使用Xamarin Studio进行Android开发的配置和基本流程. 以前未曾具体得做过App开发,现在大致了解了开发所包含的基本元素. 如上图,在Layout ...

  3. 关于MySQL的分区(partion)

    1 CREATE TABLE part_tab ( c1 int default NULL, c2 ) default NULL, c3 date default NULL ) engine=myis ...

  4. ubuntu14.04安装ia32-lib

    sudo apt-get install libc6:i386 sudo -i cd /etc/apt/sources.list.d echo "deb http://old-release ...

  5. Get the largest sum of contiguous subarray in an int array

    When I finished reading this problem,I thought I could solve it by scanning every single subarray in ...

  6. Ruby on Rails Session 2: How to install Aptana Studio 3 on Ubuntu 12.04 LTS

    Update: An updated version of these instructions for Ubuntu 12.10 (Quantal Quetzal) is available her ...

  7. Yii PHP 框架分析(四)

    作者:wdy http://hi.baidu.com/delphiss/blog/item/c15b314f05f9dfc0d0c86a26.html Yii应用的入口脚本最后一句启动了WebAppl ...

  8. Junit初体验

    JUnit是一个开源的Java单元测试框架,由 Erich Gamma 和 Kent Beck 开发完成. 主要是为了方便开发人员在自己开发的过程中能够及时的发现和解决bug用的,一方面自己可以通过单 ...

  9. AppiumLibrary

    Strategy Example Description identifier Click Element|identifier=my_element Matches by @id or @name ...

  10. 2016-5-19模拟测试 bzoj3652 bzoj3653 bzoj3654

    T1 description 给定正整数\(n\),定义\(f(x) = \max{y \ \mathrm{xor}\ x}(y<n)\) \(x\)在\([0,n)\)随机取值,求\(f(x) ...