简单问题求助,在线等! bool b=(object)1==(object)1;bool b2=(object)"a"==(object)"a";bool b3=((object)1).Equals((object)1);请问b,b2,b3的值,为什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 falsetruetrue估计ZL不理解的是第一个吧?第一个是两个对象,用==当然是false了! 相反,我不理解的是后面两个。后面两个不也是比对象吗,为什么是true? falsetruetrueC#对值类型进行装箱操作时,必须分配并构造一个全新的对象,并将该对象的引用指向该值的一个副本,(object)1==(object)1 相当于两个不同的对象比较(object)"a"==(object)"a"; 字符本来就是引用类型,这种只不过是进行显示装箱个人认为和 "a"=="a" 差不多,所以是相同的((object)1).Equals((object)1);Equals方法是指两个对象的实例是否相等所以是相等的 falsetruetruebool b=(object)1==(object)1; 这个比较地址,生成了两个地址不同的对象bool b2=(object)"a"==(object)"a"; string是类,但你没发现你没有写new么?.net对字串处理比较特殊,它会检查当前动态分配的字串中是否有这个字串,如果有,则返回引用,否则创建新对象,返回引用。这里是存在的。自然指向同一个对象了。bool b3=((object)1).Equals((object)1); 这个是比较值 1=1 相等 To:kelong18433:b3为什么是比较值而不是引用呢?不明白…… 界面自动退出,但是任务管理器中进程还在,且无法结束 如和调用这个函数private void logger(String msg),在线等,急 我有一个字符串,如何设置打印格式? DateTimePicker控件设置 DataGridViewCheckBoxColumn绑定int列的问题 在Socket连接中如何传送和接收一个对象 数据库建表的问题 ******$$$$$$$---20分求一句SQL语句。数据库人才请进。 windowxp下net2008开发打包的程序,在win7下无法安装 很奇怪的winform下的背景图片问题 打印图片的奇怪问题 求救sql问题
true
true估计ZL不理解的是第一个吧?第一个是两个对象,用==当然是false了!
true
trueC#对值类型进行装箱操作时,必须分配并构造一个全新的对象,并将该对象的引用指向该值的一个副本,(object)1==(object)1 相当于两个不同的对象比较
(object)"a"==(object)"a"; 字符本来就是引用类型,这种只不过是进行显示装箱
个人认为和 "a"=="a" 差不多,所以是相同的
((object)1).Equals((object)1);Equals方法是指两个对象的实例是否相等
所以是相等的
true
truebool b=(object)1==(object)1; 这个比较地址,生成了两个地址不同的对象bool b2=(object)"a"==(object)"a";
string是类,但你没发现你没有写new么?.net对字串处理比较特殊,它会检查当前动态分配的字串中是否有这个字串,如果有,则返回引用,否则创建新对象,返回引用。这里是存在的。自然指向同一个对象了。bool b3=((object)1).Equals((object)1); 这个是比较值 1=1 相等
b3为什么是比较值而不是引用呢?不明白……