前言 昨天晚上闲着无事,就上csdn逛了一下,突然发现一个帖子很有意思,就点进去看了一下. 问题很精辟 int a = 1; object b=a; object c = b; c = 2; 为什么b不会变成2呢?b和c应该指向堆里面的同一个引用啊? 大神们的回答也让我深思,这里就把自己的理解写出来,如果有误,还请告知. 本文测试代码: static void Main() { int a = 1; object b = a; object c = b; c = 2; } 使用ildasm.ex…
见网站: http://www.json.org/ 代码如下: /* * Copyright (c) 2013 Calvin Rien * * Based on the JSON parser by Patrick van Bergen * http://techblog.procurios.nl/k/618/news/view/14605/14863/How-do-I-write-my-own-parser-for-JSON.html * * Simplified it so that it…
十一长假就要过去了,今年假期没有回家,一个人闲着无聊就在看C#语言规范5.0中文版.昨天看了 is运算符和 as运算符,平时项目中也有用到这两种符号,对于其效率也没有进行比较过,趁着假期有空,先看下效率. is 常用法: if(obj is T) { T value = (T) obj; } 先判断obj是不是T类型,如果是再进行转换. as 常用法: T value = obj as T; if(value !=null) { } 如果obj不是T类型,value=null:如果是value=…
有时候我们希望把类的实例保存下来,以便以后的时候用.一个直观的方法就是StreamWriter把类写成一行,用\t分隔开每个属性,然后用StreamReader读出来. 但是这样太麻烦,代码行数较多,而且必须事先知道属性在行中的对应位置.这时候如果采用类序列化的方式保存就使得代码很简单: 假如你有一个类,在它的上面加上[Serializable]属性就可以了,表示这个类是可以序列化的 [Serializable] public class People { public string Name…