- 博客(6)
- 资源 (5)
- 收藏
- 关注
翻译 改善C#编程的50个建议(16-20)
16 避免创建不必要的对象GC(垃圾回收)为我们管理内存,以一种比较有效的方式移除不使用的对象。但是不管怎样分配和销毁基于堆管理的对象都会占用不少处理器时间,所以请不要加重GC的负担,如下是一种比较糟糕的方式来分配GDI对象: protected override void OnPaint(PaintEventArgs e) { // Bad. Creat
2014-03-31 22:34:25 1308
翻译 改善C#编程的50个建议(11-15)
11 理解使用简短函数的好处.NET运行时调用JIT编译器来转换IL代码为本地机器码: public string BuildMsg(bool takeFirstPath) { StringBuilder msg = new StringBuilder(); if (takeFirstPath) { ms
2014-03-26 09:21:32 1348
翻译 改善C#编程的50个建议(6-10)
6、区别各种不同的Equal方法C#提供了以下四种方法来判断两个对象是否相等:1.static bool ReferenceEquals(object left, object right);2.static bool Equals(object left, object right);3.virtual bool Equals(object right);4.static b
2014-03-22 00:32:20 1430
翻译 改善C#编程的50个建议(1-5)
翻译自Effective C#1、属性(properties)抽象属性可以放在接口的定义里。如:public interface INameValuePair { string Name { get; } T Value{ get; set; } }所有私有字段的访问都建议使用属性来处理,类中所有的数据成员都应当是私有
2014-03-19 00:14:01 2051
原创 托管程序优于非托管程序的地方
传统的C/C++编译生成的应用一般属于非托管应用程序,而基于.NET框架,通过CLR、JIT来编译生成的应用程序属于托管应用程序。一般的理解,非托管程序肯定要优于托管程序的,为什么呢?因为非托管程序省略了CLR加载、JIT编译,而直接编译成本地CPU执行的指令的。那么托管程序较非托管程序,到底好在哪里呢?最主要一点就是JIT编译器在将IL代码编译成本地CPU指令时,会获取更多的执行环境
2014-03-05 13:34:06 1074
原创 CLR初始化及EXE加载的流程
When the compiler/linker creates an executable assembly, the following 6−byte x86 stub function is emitted into the PE file’s .text section:JMP _CorExeMainBecause the _CorExeMain function is impor
2014-03-04 12:58:56 2157 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人