char[] ch ={ 'a', 'b', 'c', 'd' };
String s1 = new String(ch);
String s2 = new String(ch);我用Console.WriteLine(Object.Equals(s1,s2))打印出来结果为True,是不是说明只有一个String对象?如果是,那么我都是用new新建的字符串对象啊,为什么只有一个呢?
String s1 = new String(ch);
String s2 = new String(ch);我用Console.WriteLine(Object.Equals(s1,s2))打印出来结果为True,是不是说明只有一个String对象?如果是,那么我都是用new新建的字符串对象啊,为什么只有一个呢?
char[] ch ={ 'a', 'b', 'c', 'd' };
String s1 = new String(ch);
String s2 = new String(ch);
Console.WriteLine((s1==s2).ToString());2.
char[] ch ={ 'a', 'b', 'c', 'd' };
String s1 = ch;
String s2 = ch;
Console.WriteLine((s1==s2).ToString());
返回值为boolean值
所以说,如果a和b引用的是两个对象的话,即使它们完全一样,Object.Equals(a,b)也不会相等 Cylinder c1 = new Cylinder(1, 2, 3, 4);
Cylinder c2 = new Cylinder(1, 2, 3, 4);
Console.WriteLine(Object.Equals(c1,c2));这是我做的试验,Cylinder是我自己定义的一个圆柱体类,最后输出的是False
String s2 = ch;
String s1 = new String(ch);
String s2 = new String(ch);
String s3 = s1;MessageBox.Show(Pointer.ReferenceEquals(s1, s2).ToString()); // False
MessageBox.Show(Pointer.ReferenceEquals(s1, s3).ToString()); // True
MessageBox.Show(object.ReferenceEquals(s1, s3).ToString()); // True
1 object.ReferenceEquals(object1,object2)
2 object.Equals(object1,object2)
1,2 是不同的,第一个是比对是否是同一个实例,而第二个比对的是内容是否相同
不知道对不对
谢谢楼主 呵呵