int i = 2000;
object o = i;
i = 2001;
int j = (int)o;
Console.WriteLine("i={0},o={1},j={2}",i,o,j);
Console.ReadKey();
结果是i=2001,o=2000,j=2000
有人可以告诉我吗?为什么o为2000;
...全文
16814打赏收藏
c#一道面试题
int i = 2000; object o = i; i = 2001; int j = (int)o; Console.WriteLine("i={0},o={1},j={2}",i,o,j); Console.ReadKey(); 结果是i=2001,o=2000,j=2000 有人可以告诉我吗?为什么o为2000;
int i = 2000; //i是值类型对象,值为2000...
object o = i; //装箱(Boxing)...引用类型o的值是一个值为2000的int类型对象,这个对象和i没有关系...
i = 2001; //值类型对象i改变不会影响引用类型o的值...因为它们毫无关系...
int j = (int)o; //拆箱(Unboxing)...值类型对象j和没有关系,和i更没有关系...
int i = 2000; //i是值类型对象,值为2000...
object o = i; //装箱(Boxing)...引用类型o的值是一个值为2000的int类型对象,这个对象和i没有关系...
i = 2001; //值类型对象i改变不会影响引用类型o的值...因为它们毫无关系...
int j = (int)o; //拆箱(Unboxing)...值类型对象j和没有关系,和i更没有关系...
int i = 2000; //i=2000
object o = i; //0=2000
i = 2001; //i=2001
int j = (int)o; //j=2000,0=2000
Console.WriteLine("i={0},o={1},j={2}",i,o,j);
Console.ReadKey();
int i = 2000; //i=2000
object o = i; //0=2000
i = 2001; //i=2001
int j = (int)o; j=2000,0=2000
Console.WriteLine("i={0},o={1},j={2}",i,o,j);
Console.ReadKey();