如果你将a改为readonly,上面的情况不会发生。
原因就是,const是个编译时的常量,当编译器发现a是const时,就会将所有引用a的地方都用值12代替。因此在控制台中,实际代码变成了如下:
if (12== 12)//这里的A.a用常量值12代替了
Console.WriteLine(12);//这里也是
else
Console.WriteLine("not equals");
那么当我们修改A.a所在的程序集时,控制台所在的那个程序集是不会更新的,还是12.
解决办法就是换成readonly。 |