摘要: 重要的两点:一. 如果按引用传递(添加ref关键字),被调用者可能改变对象的状态数据的值和所引用的对象。二. 如果按值传递(没有任何关键字修饰),被调用者可能改变对象的状态数据的值,但不能改变所引用的对象。具体整体可参考《C#与.NET4高级程序设计》第五版的P116~P118。 阅读全文
posted @ 2012-04-26 20:44 rarry 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 首先,.NET运行时的默认行为是忽略运算溢出。当只需要对部分代码进行溢出检测时,可以把该部分代码放入checked{}内,即可。当需要项目级别的溢出检测时,可以设置项目的属性中的生成->高级->检测运算上溢/下溢。如果在设置项目级别的溢出检测的前提下,有部分代码是可以忽略运算溢出,此时可以把这部分代码放入unchecked{}中,则表示该段代码的溢出是可以接受的。简要说明一下checked用法:如果我们使用了些命令或关键字,则C#编译器会使用额外的CIL指令来测试在将两个数值数据类型相加,相乘,相减和相除时可能产生的溢出情况。如果发生了溢出,则会得到一个运行异常:System.Ov 阅读全文
posted @ 2012-04-26 18:38 rarry 阅读(457) 评论(0) 推荐(0) 编辑