前面我曾经讨论过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. Java---replace与replaceAll的区别

    乍一看,字面上理解好像replace只替换第一个出现的字符(受javascript的影响),replaceall替换所有的字符,其实大不然,只是替换的用途不一样. 这两者很容易搞混,在这里详细讲述下. ...

  2. [CODEVS1220]数字三角形

    题目描述 Description 如图所示的数字三角形,从顶部出发,在每一结点可以选择向左走或得向右走,一直走到底层,要求找出一条路径,使路径上的值最大. 输入描述 Input Description ...

  3. Linux系统下如何修改主机名

    vi /etc/sysconfig/network vi /etc/hosts sudo hostname

  4. JavaScript高级程序设计61.pdf

    JSON对象 早期的JSON解析器就是使用JavaScript的eval()函数,ECMAScript5对解析JSON的行为做出了规定,定义了全局对象JSON. JSON对象有2个方法:stringi ...

  5. [ZETCODE]wxWidgets教程二:辅助类

    本教程原文链接:http://zetcode.com/gui/wxwidgets/helperclasses/ 翻译:瓶哥 日期:2013年11月27日星期三 邮箱:414236069@qq.com ...

  6. 《A First Course in Probability》-chape4-离散型随机变量-几种典型分布列

    超几何分布: 超几何分布基于这样一个模型,一个坛子中有N个球,其中m个白球,N-m个黑球,从中随机取n(不放回),令X表示取出来的白球数,那么: 我们称随机变量X满足参数为(n,m,M)的超几何分布. ...

  7. python-面向对象(三)——类的特殊成员

    类的特殊成员 1. __doc__     表示类的描述信息 class Foo: """ 描述类信息,这是用于看片的神奇 """ def ...

  8. struts2 表单处理

    在这篇教程里我们将探究如何处理表单提交.本文例子介绍: javabean存储表单数据 在action中重写validate方法进行简单的校验 创建一个struts2表单并和javabean匹配 jav ...

  9. 写一段方便的SQL 循环查每一天的数据

    declare @recd int,@i int,@a int,@count int,@day1 date,@day2 date,@days int set @day1='2014-8-24' set ...

  10. ios7新特性实践

    一 iOS 7 新特性:视图控制器切换API 二 iOS 7系列译文:认识 TextKit 三 iOS 7系列译文:iOS7的多任务处理 四 iOS7 最佳实践:一个天气应用案例(上) 五 iOS7 ...