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

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

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

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

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

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

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

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

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

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

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

这里我要另外吐槽一下,

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

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

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

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

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

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

转载于:https://www.cnblogs.com/Danfish/p/5779822.html

吐槽:Lambda表达式相关推荐

  1. java lambda表达式详解_Java8新特性Lambda表达式详解

    课程目标: 通过本课程的学习,详细掌握Java8新特性之Lambda表达式: 适用人群:有Java基础的开发人员: 课程概述:从Java 8出现以来lambda是最重要的特性之一,它可以让我们用简洁流 ...

  2. java thread lambda_Java8新特性--Lambda表达式

    从java8出现以来lambda是最重要的特性之一,它可以让我们用简洁流畅的代码完成一个功能. 很长一段时间java被吐槽是冗余和缺乏函数式编程能力的语言,随着函数式编程的流行java8种也引入了 这 ...

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

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

  4. Lambda 表达式基础理论与示例

    Lambda 表达式基础理论与示例 Lambda 表达式,也可称为闭包,推动 Java 8 发布的最重要新特性. Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中). 使用 Lam ...

  5. lambda表达式树

    一.定义: 表达式树又称为表达式目录树,以数据形式表示语言级代码.所有的数据都存储在树结构中,每个结点表示一个表达式(Expression). 二.要点: –Lambda表达式的参数类型可以忽略,因为 ...

  6. java 8 lambda reduce_JDK8新特性Lambda表达式体验

    "Lambda 表达式"(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstra ...

  7. java saf_Java 8 Lambda表达式探险

    为什么? 我们为什么需要Lambda表达式 主要有三个原因: > 更加紧凑的代码 比如Java中现有的匿名内部类以及监听器(listeners)和事件处理器(handlers)都显得很冗长 &g ...

  8. lamda表达式python_Python--13 lambda表达式

    python 允许使用lambda表达式来创建匿名函数 lambda表达式 >>>def ds(x): ... return 2 * x +1 ... >>> ds ...

  9. C++11:Lambda表达式(匿名函数)理解

    C++在C11标准中引入了匿名函数,即没有名字的临时函数,又称之为lambda表达式.lambda表达式 实质上是创建一个匿名函数/对象.即你可以理解为(Lambda 表达式实际上是一个函数,只是它没 ...

最新文章

  1. 二叉树 1.0 -- 创建二叉树、遍历二叉树、二叉树常见问题求解
  2. WPF显示经常使用的几个显示文字控件TextBox, TextBlock, Lable
  3. c语言程序设计复习提纲,C语言程序设计复习提纲
  4. Java开发人员的升级之路
  5. LeetCode 322. 零钱兑换(DP)
  6. 2013江苏计算机二级vfp试题,2013年3月全国计算机二级VFP真题
  7. php对某目录设置ip权限,apache - .htaccess如何单独给某个请求设置IP白名单权限?...
  8. 丰巢回应小学生用照片“刷脸”取件;苹果明年或发布四款 5G 手机;Spring Boot 2.2.0 发布 | 极客头条...
  9. Symbol()类型的定义及特点
  10. 3D点云重建0-10:MVSNet-源码解析(6)-Depth Map Refinement以及Loss讲解
  11. SatSun CRMS V2010 整站系统
  12. 达梦数据库SQL语句执行
  13. muti-thread fork
  14. java List的stream()方法解析
  15. 有一个计算机可以知道手机密码,要不是他,你根本不会忘记密码
  16. 【调剂】陕西师范大学计算机科学学院2022年硕士研究生调剂公告
  17. 重载、重写(覆盖)、重定义(同名隐藏)的区别
  18. 微信小程序登陆凭证校验出现{errcode:40029,errmsg:invalid code, hints: [ req_id: weh8ka0297hc58 ]}
  19. c++QT笔记,windows毛玻璃窗口实现封装
  20. Java实现多图片和文字编辑成一张图片

热门文章

  1. 高可用Hadoop平台-Oozie工作流之Hadoop调度
  2. Unity ScriptObject
  3. python 源代码 macd双底 高 低_MACD指标DIFF双底与双顶:买入与卖出
  4. python 选择文件对话框插件_[ PyQt入门教程 ] PyQt5基本控件使用:消息弹出、用户输入、文件/目录选择对话框...
  5. android的应用组件,跟我学android-Android应用基本组件介绍(五)
  6. 06MySQL基本函数的使用
  7. Python数据结构:插入排序
  8. oracle open_link,open_links_per_instance 和 open_links 参数说明
  9. linux和windows接口中文乱码_Loadrunnerweb接口基础
  10. android 获取手机a标签页,Android关于对Jsoup抓取a标签和br标签之间的解决办法...