这个是这样的:
其实你只要理解了引用类型在堆中的分配,就很简单了,
注释部分:new Dictionary<int,DateTime>()是在内存堆中分配了一块内存,并且将引用赋给了自动属性生成的默认字段,使字段指向那个地址,后面向字典中添加键值对时,是向同一个对象添加的;而后面没注释的那个则是每次你取b.dic时都会执行result=new Dictionary<int,DateTime>()这句,也就是会在堆中创建新的对象,并分配空间,意思就是说每次都不是同一个对象了
对象引用的对象变掉了。所以,就那个啥了。
Dictionary<int, DateTime> result = new Dictionary<int, DateTime>(); ??因为这个嘛??
public Dictionary<int, DateTime> dic 不是引用类型嘛??可否说清楚点。谢了
@彬彬@科比: 你第二次 b的值变化了吗? 不还是B类第一次初始化的值,是第一次的值才是对的,
@彬彬@科比: 断点跟下。看看值的变化。就一清二楚了
楼上说的好上有点意思