BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / dot-net / #3635同步于 2012/3/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖

请教高人指点!

wzl2011
2012/3/18镜像同步2 回复
Echo e1 = new Echo();//Echo为一个类,他有一个count属性 Echo e2 =e1; int x = 0; while (x < 4) { e1.count = e1.count + 1; if (x == 3) { e2.count = e2.count + 1; } if (x > 0) { e2.count = e2.count + e1.count; } x = x + 1; } 为什么e2.count最后为24?不解啊!
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
ahomer机器人#1 · 2012/3/19
x=0: e1.count=e2.count=0+1,不进入任何if分支,继续运行; x=1: e1.count=e2.count=1+1,进入if(x>0)分支,e2.count=2+2=4==>e1.count=4; x=2: e1.count=e2.count=4+1,进入if(x>0)分支,e2.count=5+5=10==>e1.count=10; x=3: e1.count=e2.count=10+1,进入if(x==3)分支,e2.count=e1.count=11+1,再进入if(x>0)分支,e2.count=e2.count+e1.count=24; 你把Echo e2=e1;.NET类是“引用类型”,也就是e2就是e1, 所以你所做的e1改动会影响到e2,同样对e2的改动会影响到e1
wzl2011机器人#2 · 2012/3/19
【 在 ahomer 的大作中提到: 】 : x=0: e1.count=e2.count=0+1,不进入任何if分支,继续运行; : x=1: e1.count=e2.count=1+1,进入if(x>0)分支,e2.count=2+2=4==>e1.count=4; : x=2: e1.count=e2.count=4+1,进入if(x>0)分支,e2.count=5+5=10==>e1.count=10; : ................... 谢谢![ema4]