摘要: 浅谈引用类型和值类型,一个源代码基本可以说清楚问题: 1 class SomeRef{ public Int32 x;} 2 3 struct SomeVal{ public Int32 x;} 4 5 static void ValueTypeDemo(){ 6 SomeRef r1=new SomeRef(); 7 SomeVal v1=new SomeVal(); 8 r1.x=5; 9 v1.x=5;10 SomeRef r2=r1;11 SomeVal v2=v1;12 r1.x=8;13 ... 阅读全文
posted @ 2012-06-11 16:31 迟醒 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 编译器直接支持的数据类型就是基元类型。基元类型直接映射到Framework类库(FCL)中存在的类型。 Decimal在C#中是基元类型。FCL是System.Decimal。常用于不容许舍入误差的金融计算。但是Decimal在CLR中没有相应的IL指令来决定如何处理一个Decimal值。所以当你用Decimal值时。编译Decimal,编译器会生成代码来调用Decimal的成员,并通过这些成员来执行实际的运算。所以Decimal处理会慢于其他基元类型。而且,因为没有IL指令处理Decimal值,所以checked和Unchecked操作符、语句以及编译器开关都失去了作用。假如对Deci... 阅读全文
posted @ 2012-06-11 15:06 迟醒 阅读(215) 评论(0) 推荐(0) 编辑