随笔分类 -  C#开发157条建议

摘要:前言 本文已同步到http://www.cnblogs.com/aehyok/p/3624579.html。本文主要来学习以下几点建议 建议61、避免在finally内撰写无效代码 建议62、避免嵌套异常 建议63、避免“吃掉”异常 建议64、为循环增加Tester-Doer模式而不是... 阅读全文
posted @ 2014-06-03 09:44 aehyok 阅读(4591) 评论(10) 推荐(3) 编辑
摘要:前言 自从.NET出现后,关于CLR异常机制的讨论就几乎从未停止过。迄今为止,CLR异常机制让人关注最多的一点就是“效率”问题。其实,这里存在认识上的误区,因为正常控制流程下的代码运行并不会出现问题,只有引发异常时才会带来效率问题。基于这一点,很多开发者已经达成共识:不应将异常机制用于正常控制... 阅读全文
posted @ 2014-05-28 11:08 aehyok 阅读(4649) 评论(23) 推荐(4) 编辑
摘要:前言本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html。本文主要学习记录以下内容: 建议42、使用泛型参数兼容泛型接口的不可变性 建议43、让接口中的泛型参数支持协变 建议44、理解委托中的协变 建议45、为泛型类型参数指定协变建议42、使用... 阅读全文
posted @ 2014-05-21 09:30 aehyok 阅读(3207) 评论(6) 推荐(9) 编辑
摘要:前言本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html。本文主要学习记录以下内容: 建议38、小心闭包中的陷阱 建议39、了解委托的实质 建议40、使用event关键字对委托施加保护 建议41、实现标准的事件模型建议38、小心闭包中的陷阱 ... 阅读全文
posted @ 2014-05-19 09:27 aehyok 阅读(5607) 评论(7) 推荐(19) 编辑
摘要:前言 泛型并不是C#语言一开始就带有的特性,而是在FCL2.0之后实现的新功能。基于泛型,我们得以将类型参数化,以便更大范围地进行代码复用。同时,它减少了泛型类及泛型方法中的转型,确保了类型安全。委托本身是一种引用类型,它保存的也是托管堆中对象的引用,只不过这个引用比较特殊,它是对方法的引用。事件... 阅读全文
posted @ 2014-05-15 11:00 aehyok 阅读(2644) 评论(2) 推荐(8) 编辑
摘要:前言 泛型并不是C#语言一开始就带有的特性,而是在FCL2.0之后实现的新功能。基于泛型,我们得以将类型参数化,以便更大范围地进行代码复用。同时,它减少了泛型类及泛型方法中的转型,确保了类型安全。委托本身是一种引用类型,它保存的也是托管堆中对象的引用,只不过这个引用比较特殊,它是对方法的引用。事件... 阅读全文
posted @ 2014-05-13 11:09 aehyok 阅读(3128) 评论(0) 推荐(10) 编辑
摘要:前言本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html。本文主要学习记录以下内容: 建议29、区别LINQ查询中的IEnumerable和IQueryable 建议30、使用LINQ取代集合中的比较器和迭代器 建议31、在LINQ查询中避免不必... 阅读全文
posted @ 2014-05-09 11:02 aehyok 阅读(4131) 评论(1) 推荐(8) 编辑
摘要:前言 从.NET3.0开始,C#开始一直支持一个新特性:匿名类型。匿名类型由var、赋值运算符和一个非空初始值(或以new开头的初始化项)组成。匿名类型有如下基本特性:1、既支持简单类型也支持复杂类型。简单类型必须是一个非空初始值,复杂类型则是一个以new开头的初始化项。2、匿名类型的属性是只读的... 阅读全文
posted @ 2014-05-07 11:30 aehyok 阅读(3643) 评论(2) 推荐(16) 编辑
摘要:前言 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html。本文主要学习记录以下内容: 建议23、避免将List作为自定义集合类的基类 建议24、迭代器应该是只读的 建议25、谨慎集合属性的可写操作建议23、避免将List作为自定义集合类的基类... 阅读全文
posted @ 2014-04-14 10:44 aehyok 阅读(3344) 评论(7) 推荐(8) 编辑
摘要:前言 软件开发过程中,不可避免会用到集合,C#中的集合表现为数组和若干集合类。不管是数组还是集合类,它们都有各自的优缺点。如何使用好集合是我们在开发过程中必须掌握的技巧。不要小看这些技巧,一旦在开发中使用了错误的集合或针对集合的方法,应用程序将会背离你的预想而运行。 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html。本文主要学习记录以下内容: 建议20、使用泛型集合来替代非泛型集合 建议21、选择正确的集合 建议22、确保集合的线性安全建议20、使用泛型集合来替代非泛型集合http://www.cnblogs.com/aehyok... 阅读全文
posted @ 2014-04-11 10:04 aehyok 阅读(4967) 评论(19) 推荐(8) 编辑
摘要:前言 软件开发过程中,不可避免会用到集合,C#中的集合表现为数组和若干集合类。不管是数组还是集合类,它们都有各自的优缺点。如何使用好集合是我们在开发过程中必须掌握的技巧。不要小看这些技巧,一旦在开发中使用了错误的集合或针对集合的方法,应用程序将会背离你的预想而运行。 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html。本文主要学习记录以下内容: 建议16、元素数量可变的情况下不应使用数组 建议17、在多数情况下使用foreach进行循环遍历 建议18、foreach不能代替for 建议19、使用更有效的对象和集合初始化建议16、元... 阅读全文
posted @ 2014-04-03 15:06 aehyok 阅读(8092) 评论(23) 推荐(32) 编辑
摘要:前言 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html。本文主要学习记录以下内容: 建议13、为类型输出格式化字符串 建议14、正确实现浅拷贝和深拷贝 建议15、使用dynamic来简化反射实现建议13、为类型输出格式化字符串 有两种方法可以为类型提供格式化的字符串输出。 一种是意识到类型会产生格式化字符串输出,于是让类型继承接口IFormattable。这对类型来说,是一种主动实现的方式,要求开发者可以预见类型在格式化方面的要求。 更多的时候,类型的使用者需为类型自定义格式化器,这就是第二种方法,也是最灵活多变的方法,可以根据... 阅读全文
posted @ 2014-04-01 09:23 aehyok 阅读(4132) 评论(8) 推荐(15) 编辑
摘要:前言 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html。本文主要学习记录以下内容: 建议10、创建对象时需要考虑是否实现比较器 建议11、区别对待==和Equals 建议12、重写Equals时也要重写GetHashCode建议10、创建对象时需要考虑是否实现比较器 有对象的地方就会存在比较,就像小时候每次拿着考卷回家,妈妈都会问你隔壁的那谁谁谁考了多少分呀。下面我们也来举个简单的例子,就是有几个人的Salary列表。我们根据基本工资来进行罗列: class Program { static void Ma... 阅读全文
posted @ 2014-03-31 09:26 aehyok 阅读(4711) 评论(6) 推荐(12) 编辑
摘要:前言 本文首先亦同步到http://www.cnblogs.com/aehyok/p/3624579.html。本文主要来学习记录一下内容: 建议4、TryParse比Parse好 建议5、使用int?来确保值类型也可以为null 建议6、区别readonly和const的使用方法 建议7、将0值设为枚举的默认值 建议8、避免给枚举类型的元素提供显式的值 建议9、习惯重载运算符建议4、TryParse比Parse好 如果注意观察,除string之外的所有的基元类型。会发现它们都有两个将字符串转换为自身类型的方法:Parse和TryParse。以类型double为例。两者最大的区... 阅读全文
posted @ 2014-03-28 10:33 aehyok 阅读(5103) 评论(24) 推荐(16) 编辑
摘要:前言 本文主要来学习记录前三个建议。 建议1、正确操作字符串 建议2、使用默认转型方法 建议3、区别对待强制转换与as和is其中有很多需要理解的东西,有些地方可能理解的不太到位,还望指正。建议1、正确操作字符串 字符串应该是所有编程语言中使用最频繁的一种基础数据类型。如果使用不慎,我们就会... 阅读全文
posted @ 2014-03-27 14:13 aehyok 阅读(8681) 评论(13) 推荐(24) 编辑
摘要:前言 由于最近工作重心的转移,原来和几个同事一起开发的项目也已经上线了,而新项目就是在现有的项目基础上进行优化延伸扩展。打个比方,现在已经上线的项目行政案件的Web管理网站(代码还没那么多相比较即将要做的刑事案件吧),而新项目是刑事案件的Web管理网站,之后行政和刑事这两个网站是要合并的。前段时间... 阅读全文
posted @ 2014-03-26 10:17 aehyok 阅读(19845) 评论(38) 推荐(75) 编辑