【新手求助,望解答!谢谢!!!!!!!!!】


using System;

namespace hello
{
class test
{
double d1=3.2;
double d2=d1;
Console.WriteLine((object)d1==(object)d2);/*这步是把d1,d2强制转换为object类型,也就是引用类型,比较的应该是首地址,结果不是应该为TRUE吗?结果为FALSE,这是为什么?求解。。。谢谢*/
}
}


...全文
100 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
2楼的回答让我懂了,其他人说的不详细。
devmiao 2012-02-14
  • 打赏
  • 举报
回复
强制类型转换后并不能转换成引用类型。
dean615 2012-02-14
  • 打赏
  • 举报
回复
D1,D2是值类型,存放的内存地址就不同啊
nonocast 2012-02-14
  • 打赏
  • 举报
回复
Equals和==是不同滴
LanFavourite 2012-02-14
  • 打赏
  • 举报
回复
简单来说 就是 值类型转换成了 引用类型了,进行了装箱 操作。 引用类型是 复制对象的引用,而不是 复制对象 本身。
LanFavourite 2012-02-14
  • 打赏
  • 举报
回复
不对。
double d1=3.2;
然后是将 3.2的值赋给 double d2 这个变量。

打印的时候 却 将各自 转换 成了 ((object)d1==(object)d2) 这时 就是 引用类型了,值就不再是 原先的值了,所以...打印出来的是 False LZ,不知道 这样 能不能解答你的疑惑?
zhoujin96 2012-02-14
  • 打赏
  • 举报
回复
值类型和引用类型的肯定不一样啊

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧