书籍目录
首页
分类
免费
排行
我的书架
1-50章
51-100章
101-150章
151-200章
201-250章
251-300章
301-345章
共345章
免费
版权信息
免费
编写高质量代码:改善C#程序的157个建议
免费
版权信息
免费
前言
免费
第一部分 语言篇
免费
第1章 基本语言要素
免费
建议1:正确操作字符串
免费
建议2:使用默认转型方法
免费
建议3:区别对待强制转型与as和is
免费
建议4:TryParse比Parse好
免费
建议5:使用int?来确保值类型也可以为null
免费
建议6:区别readonly和const的使用方法
免费
建议7:将0值作为枚举的默认值
免费
建议8:避免给枚举类型的元素提供显式的值
免费
建议9:习惯重载运算符
免费
建议10:创建对象时需要考虑是否实现比较器
免费
建议11:区别对待==和Equals
免费
建议12:重写Equals时也要重写GetHashCode
免费
建议13:为类型输出格式化字符串
免费
建议14:正确实现浅拷贝和深拷贝
免费
建议15:使用dynamic来简化反射实现
免费
第2章 集合和LINQ
免费
建议16:元素数量可变的情况下不应使用数组
免费
建议17:多数情况下使用foreach进行循环遍历
免费
建议18:foreach不能代替for
免费
建议19:使用更有效的对象和集合初始化
免费
建议20:使用泛型集合代替非泛型集合
免费
建议21:选择正确的集合
免费
建议22:确保集合的线程安全
免费
建议23:避免将List<T>作为自定义集合类的基类
免费
建议24:迭代器应该是只读的
免费
建议25:谨慎集合属性的可写操作
免费
建议26:使用匿名类型存储LINQ查询结果
免费
建议27:在查询中使用Lambda表达式
免费
建议28:理解延迟求值和主动求值之间的区别
免费
建议29:区别LINQ查询中的IEnumerable<T>和IQueryable<T>
免费
建议30:使用LINQ取代集合中的比较器和迭代器
免费
建议31:在LINQ查询中避免不必要的迭代
免费
第3章 泛型、委托和事件
免费
建议32:总是优先考虑泛型
免费
建议33:避免在泛型类型中声明静态成员
免费
建议34:为泛型参数设定约束
免费
建议35:使用default为泛型类型变量指定初始值
免费
建议36:使用FCL中的委托声明
免费
建议37:使用Lambda表达式代替方法和匿名方法
免费
建议38:小心闭包中的陷阱
免费
建议39:了解委托的实质
免费
建议40:使用event关键字为委托施加保护
免费
建议41:实现标准的事件模型
免费
建议42:使用泛型参数兼容泛型接口的不可变性
×