随笔分类 - C#回顾
foreach-本质
摘要:为什么可以foreach呢?我们自定义的类能不能foreach?下面请看测试 编译错误: 也就是说我们有GetEnumerator方法才行,虽然编译错误,我们先反编译一下看看foreach最终会编译成什么? 看到了吧,foreach会生成的代码是需要一个方法GetEnumerator方法返回一个枚举
阅读全文
装拆箱
摘要:装箱(boxing)和拆箱(unboxing)是C#类型系统的核心概念。 值类型继承至System.ValueType,引用类型继承至System.Object,详细的类继承关系如下图所示: 值类型实例通常分配在线程的栈(stack)上,并且不包含任何指向实例数据的指针,因为变量本身就包含了其实例数
阅读全文
判断是否为同一对象
摘要:普通的引用类型比较: 1 //运行结果都是false,这个没有要说明的,因为p1跟p2存储的指向堆中的实例地址不一样.不是同一个对象 2 Person p1 = new Person 3 { 4 Name = "XXX", 5 Age = 18, 6 Email = "XXX@yahoo.com"
阅读全文
Finally-操作返回值
摘要:Finally中操作返回值会出现一个问题?值没有被改变? 1 static int M1() 2 { 3 int result = 100; 4 try 5 { 6 result = result + 1; 7 // 引发异常的代码 8 int x = 10, y = 0; 9 Console.Wr
阅读全文
浙公网安备 33010602011771号