黑马程序员技术交流社区

标题: 装箱问题 [打印本页]

作者: 何祥旺    时间: 2012-5-14 10:22
标题: 装箱问题
            int i = 2;
            object obj1 = i;
            object obj2 = (object)i;
            Console.WriteLine(obj1 == obj2);

为什么输出的是false而不是true呢?

作者: 杨礼文    时间: 2012-5-14 19:33
obj1指向 i 所指向的对象

obj2指向的对象是 i 强制转换成object后的对象  
作者: ^.^晴天    时间: 2012-5-16 01:04
int i = 2;
             object obj1 = i;
             object obj2 = (object)i;
             Console.WriteLine(obj1 == obj2);
因为Object obj1和object obj2所指的是两个不同的对象,而“==”比较的是两个对象的哈希值地址,所以输出false

作者: 朱亮辉    时间: 2012-5-16 18:11
^.^晴天 发表于 2012-5-16 01:04
int i = 2;
             object obj1 = i;
             object obj2 = (object)i;

同意楼上的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2