int a=2;
int b=2;
MessageBox.Show(object.Equals(a, b).ToString());
MessageBox.Show(object.ReferenceEquals(a, b).ToString());
第一个返回true,第二个返回false,这个不是a,b都被装箱了吗?应该都是false才对 string a="2";
string b="2";
MessageBox.Show(object.Equals(a, b).ToString());
MessageBox.Show(object.ReferenceEquals(a, b).ToString());
这两个都返回true,难道是字符串驻留的问题?
int b=2;
MessageBox.Show(object.Equals(a, b).ToString());
MessageBox.Show(object.ReferenceEquals(a, b).ToString());
第一个返回true,第二个返回false,这个不是a,b都被装箱了吗?应该都是false才对 string a="2";
string b="2";
MessageBox.Show(object.Equals(a, b).ToString());
MessageBox.Show(object.ReferenceEquals(a, b).ToString());
这两个都返回true,难道是字符串驻留的问题?
解决方案 »
- 两张表导出一个EXCEL文件
- .NET中病毒了!救命啊!!!
- sql 多表查询问题
- 为什么我编译的时候总提示JavaScript的方法未定义
- 如何用asp.net(c#)獲得某天是本年的第幾周
- 客户端修改的数据不能回传到服务器是怎么回事?
- Asp.net C#下,如何实现无限级分类?(急)
- 为何DropDownList在刷新后不能保留其值,赋给控件的值也不见了。
- {System.Windows.Markup.XamlParseException: “对类型“Autogeneration.Views.StatusView”
- 斑竹,细心的朋友能否给我这个网址?
- 如何实现CSDN中结帖给分中提示共多少分,现在还剩余多少分这样的功能
- petshop中的IList
object.ReferenceEquals(a, b) 确定指定的 Object 实例是否是相同的实例
这下,你明白为什么int 时候,一个是true,另一个是false了吧。
一切值类型、引用类型继承自Object。作参数传递的是对象的引用,没有装箱。
string是引用类型,楼主问的那个问题有人指出过。
string a="2";
string b="2"; 在堆中只有一个string的实例,在栈里有两个指向堆实例的引用。
由于不知道string内部是怎么实现的,我也一直迷惑。