90,不应为抽象类指定public的构造函数。 抽象类即使指定了public的构造函数,也是不能实例化的,编译通不过。抽象类的构造函数应该设定为protected,它的作用应该是初始化自己的成员,以及可以被子类构造函数调用。设定为public权限毫无意义。 91,可见字段应该重构为属性。 属性比字段...
分类:
其他好文 时间:
2014-10-09 20:17:07
阅读次数:
157
71, 区分异步和多线程的应用场景。 计算机的很多硬件,如硬盘,光驱,声卡,网卡都有DMA(Direct Memory Access)功能,它可以不占用cpu的资源,而异步的提出恰恰就是基于这个的。而多线程是操作系统上的并行执行的代码,是会占用cpu资源的。所以关于这两种的使用场景建议是:1)对于I...
分类:
其他好文 时间:
2014-10-09 20:14:27
阅读次数:
245
16, 元素可变的情况下应避免用数组。 数组是定长的集合,可以考虑用ArrayList或List集合。ArrayList元素是object类型,有装箱的开销,性能较低。另外Array类提供了Array.CreateInstance来创建数组,Array.Copy来拷贝数组,但这牵涉到新数组的创建,会...
分类:
其他好文 时间:
2014-10-09 19:36:47
阅读次数:
189
46, 显示释放资源,需要实现IDisposable接口。 最好按照微软建议的Dispose模式实现。实现了IDisposable接口后,在Using代码块中,垃圾会得到自动清理。 47, 即使提供了显示的释放方法,也应该在终结器中提供隐式实现。 因为我们不能保证用户会主动去调用这个释放方法,但我们...
分类:
其他好文 时间:
2014-10-09 19:33:07
阅读次数:
213
32, 总是优先考虑泛型。 泛型代码有很好的重复利用性,和类型安全性。 33, 应尽量避免在泛型类中声明静态成员。 静态成员达不到共享的目的。List和List是两个不同的类型,而静态成员是针对类型的。当然2个List之间是可以共享静态成员的,但为了不必要的混淆,应该避免使用静态成员。 34, 为泛...
分类:
其他好文 时间:
2014-10-09 19:10:47
阅读次数:
194
这是一个大纲形式的概要,以便自己可以花较少的时间反复阅读。在开发中,多加注意这些有用的建议,让自己成为一个更优秀的程序员。内容主要来自《编写高质量代码-改善C#程序的157个建议》(陆敏技),这本书写的真的很好,都是些实战经验的总结,建议大家购买,这其中的建议不仅仅适合于C#,只要你做.NET开发,...
分类:
其他好文 时间:
2014-10-09 18:51:17
阅读次数:
207
113,声明变量时考虑最大值。 Ushort的最大值是65535,用于不同的用途这个变量可能发生溢出,所以设计时应充分了解每个变量的最大值。 114,MD5不再安全。 MD5多用于信息完整性的校验。R=H(S),MD5的算法是不可逆的,也就是我们几乎没有可能根据生产的MD5码去还原原文。但是我们可以...
分类:
其他好文 时间:
2014-10-09 18:41:17
阅读次数:
162
很久不写博客了,不是因为不想写,只是最近公司任务比较多,终于十一有时间出来冒泡了。
今天继续介绍移动开发中的重中之重——内存管理。
C#代码是托管代码,C# 程序员很少像C/CPP程序员那样为程序资源的释放而头疼,一个C/CPP高手必须是内存管理的高手,作为C#程序虽然不要求像C/CPP程序员那样管理内存资源,但是对内存机制还需要有深入的理解,那些代码资源是托管资源交给GC去处理,那些...
分类:
移动开发 时间:
2014-10-03 17:21:05
阅读次数:
239
(P7) 建议直接加入到软件公司中去,这样会学到很多实际的东西;程序员最主要的发展方向是资深技术专家,无论是 Java、.Net 还是数据库领域,都要首先成为专家,然后才可能继续发展为架构师;增强工作的主动性和参与性;只有拥有更高的眼界,才能谋取更大的发展;(P10) 跳槽是需要本钱的,这个本钱就是...
分类:
编程语言 时间:
2014-10-02 16:56:33
阅读次数:
199
这是一个大纲形式的提点,以便自己可以花较少的时间时常浏览。在开发中,多加注意这些有用的建议,让自己成为一个更优秀的程序员。内容主要来自《编写高质量代码-改善C#程序的157个建议》(陆敏技),这本书写的真的很好,都是些实战经验的总结,建议大家购买此书,这其中的建议不光适合于C#,只要你做.NET开发...
分类:
其他好文 时间:
2014-09-30 21:19:20
阅读次数:
186