本帖最后由 黑马杨凯 于 2012-9-7 09:11 编辑
string str1 = "aaa";
string str2 = "aaa";
//new一个,真正的在堆上新开一块空间存放"aaa"
string str3 = new string(new char[3] { 'a', 'a', 'a' });
//判断是否指向同一个对象
Console.WriteLine("str1:{0}、str2:{1}指向同一个对象:{2}",str1,str2, string.ReferenceEquals(str1, str2));//true
Console.WriteLine("str1:{0}、str3:{1}指向同一个对象:{2}",str1,str3, string.ReferenceEquals(str1, str3));//false
Console.WriteLine("str2:{0}、str3:{1}指向同一个对象:{2}",str2,str3, string.ReferenceEquals(str2, str3));//false
//string.ReferenceEquals(objA,objB);调用的是object类的ReferenceEquals,就是返回objA==objB的值
//string类进行了运算符重载,==用来比较两个字符串的值是否相等
//结果是 str1,str2指向同一个对象,跟str3不同
Console.ReadKey();
|