摘要: 可能很多人都没有注意到,C#中对byte类型的处理还是很特殊的。下面我用几行简单的代码来说明问题byte x=1;byte y=2;byte z=x+y; //error:无法将int类型转换为byte类型可能很多人会认为这段代码没有问题,实际上第三行会产生编译错误:无法将int类型转换为byte类型!这是为什么呢?因为C#编译器会认为byte类型和byte类型运算的结果是int型,实际上对short类型也做了相似的处理。至于为什么这样设计,我的看法是byte或short类型相互运算比较容易发生溢出,所以在运算的时候直接都转换为int来运算了。再看下面的代码byte i=1; //OK这里的字 阅读全文
posted @ 2012-01-19 11:08 Rookier 阅读(1261) 评论(2) 推荐(1) 编辑
摘要: .ctor,.cctor 以及 对象的构造过程.ctor:简述:构造函数,在类被实例化时,它会被自动调用。当C#的类被编译后,在IL代码中会出现一个名为.ctor的方法,它就是我们的构造函数,对应C#中的构造函数。且看下面的代码:publicclassClass1{privatestringname;privateintage;} 类Class1中没有显示的构造函数,只有两字段,现在用ILDasm.exe打开编译后生成的exe文件,会看到: 可以看到这里有个.ctor,我们没有定义构造函数,但这里却出现了.ctor,这就说明了: 当没有显示定义构造函数时,会自动生成一个构造函数,它没有... 阅读全文
posted @ 2012-01-19 11:03 Rookier 阅读(2977) 评论(0) 推荐(3) 编辑