前言 建议10.创建对象时需要考虑是否实现比较器 建议11.区别对待==和Equals 建议12.重写Equals时也要重写GetHashCode 建议10.创建对象时需要考虑是否实现比较器 有对象的地方就会存在比较,就像小时候每次拿着考卷回家,妈妈都会问你隔壁的那谁谁谁考了多少分呀.下面我们也来举个简单的例子,就是有几个人的Salary列表.我们根据基本工资来进行罗列: class Program { static void Main(string[] args) { ArrayList ar…
前言 本文主要来学习记录前三个建议. 建议1.正确操作字符串 建议2.使用默认转型方法 建议3.区别对待强制转换与as和is 其中有很多需要理解的东西,有些地方可能理解的不太到位,还望指正. 建议1.正确操作字符串 字符串应该是所有编程语言中使用最频繁的一种基础数据类型.如果使用不慎,我们就会为一次字符串的操作所带来的额外性能开销而付出代价.本条建议将从两个方面来探讨如何规避这类性能开销: 1.确保尽量少的装箱 2.避免分配额外的内存空间 先来介绍第一个方面,请看下面的两行代码: String…
建议20.使用泛型集合来替代非泛型集合 http://www.cnblogs.com/aehyok/p/3384637.html 这里有一篇文章,是我之前专门来介绍泛型的.我们应尽量的使用泛型集合.因为泛型的确有它的好处: 1.提供了类型安全,在编译期间就可以检查错误 2.更重要的是大部分情况下泛型集合的性能比非泛型集合的性能都高很多. 下面我们来看一段简单的测试性能的代码: class Program { static int collectionCount = 0; static Stopw…
前言   软件开发过程中,不可避免会用到集合,C#中的集合表现为数组和若干集合类.不管是数组还是集合类,它们都有各自的优缺点.如何使用好集合是我们在开发过程中必须掌握的技巧.不要小看这些技巧,一旦在开发中使用了错误的集合或针对集合的方法,应用程序将会背离你的预想而运行. 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html .本文主要学习记录以下内容: 建议16.元素数量可变的情况下不应使用数组 建议17.在多数情况下使用foreach进行循环遍历…
前言 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html .本文主要学习记录以下内容: 建议13.为类型输出格式化字符串 建议14.正确实现浅拷贝和深拷贝 建议15.使用dynamic来简化反射实现 建议13.为类型输出格式化字符串 有两种方法可以为类型提供格式化的字符串输出. 一种是意识到类型会产生格式化字符串输出,于是让类型继承接口IFormattable.这对类型来说,是一种主动实现的方式,要求开发者可以预见类型在格式化方面的要求. 更多的…
建议4.TryParse比Parse好 如果注意观察,除string之外的所有的基元类型.会发现它们都有两个将字符串转换为自身类型的方法:Parse和TryParse.以类型double为例. 两者最大的区别是,如果字符串格式不满足转换的要求,Parse方法将会引发一个异常:TryParse方法则不会引发异常,它会返回false,同时将result置为0. //Parse int a = int.Parse("123a"); //TryParse int x = 0; if (int.…
建议10: 创建对象时需要考虑是否实现比较器 有对象的地方就会存在比较,在.NET的世界中也一样.举个最简单的例子,在UI中,有一个10个人的Salary列表.根据排序的需要,列表要支持针对基本工资来罗列Salary.这个时候,接口IComparable就会起作用,代码如下所示: class Salary : IComparable { public string Name { get; set; } public int BaseSalary { get; set; } public int…
前言 由于最近工作重心的转移,原来和几个同事一起开发的项目也已经上线了,而新项目就是在现有的项目基础上进行优化延伸扩展.打个比方,现在已经上线的项目行政案件的Web管理网站(代码还没那么多相比较即将要做的刑事案件吧),而新项目是刑事案件的Web管理网站,之后行政和刑事这两个网站是要合并的.前段时间也和同事以及上司的讨论结果就是新建一套项目,考虑将原有系统各种组件进行重新封装.优化.提升扩展,然后先开发刑事案件的网站,待刑事案件开发完毕将原有项目按照刑事案件的思路重新整合. 最近刚开始进行查看老代…
开篇 学生时代,老师常说,好记性不如烂笔头,事实上确实如此,有些知识你在学习的时候确实滚瓜烂熟,但是时间一长又不常用了,可能就生疏了,甚至下次有机会使用到的时候,还需要上网查找资料,所以,还不如常常摘录下来,即使下次忘记具体细节还能从我自己的博客中轻易的找出来呢,还能和各位园友分享知识,还有一点就是,读书是一件持之以恒的事情,我大学期间试过从图书馆借回来的书,三个月限期已到了还没读完又还回去了,说到底就是没有读书的动力,所以开一个读书笔记的文章系列也是很有必要的,督促自己要把这本书啃完. 章节索…
前言 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html .本文主要学习记录以下内容: 建议10.创建对象时需要考虑是否实现比较器 建议11.区别对待==和Equals 建议12.重写Equals时也要重写GetHashCode 建议10.创建对象时需要考虑是否实现比较器 有对象的地方就会存在比较,就像小时候每次拿着考卷回家,妈妈都会问你隔壁的那谁谁谁考了多少分呀.下面我们也来举个简单的例子,就是有几个人的Salary列表.我们根据基本工资来进行…