string str1 = "abc";
string str2 = "abc";
Console.WtriteLine(str1 == str2);听说是引用类型,可是上面的语句,为什么输出的是true?还有,string和String有什么区别?
string str2 = "abc";
Console.WtriteLine(str1 == str2);听说是引用类型,可是上面的语句,为什么输出的是true?还有,string和String有什么区别?
因为string类重写了== 运算符.
还有,string和String有什么区别?一样的,没任何区别
string str2 = "abc";
Console.WtriteLine(str1 == str2); 听说是引用类型,可是上面的语句,为什么输出的是true? //2个常量比较.....
还有,string和String有什么区别?
一个是值类型。
一个是引用类型只不过String类型有很多静态的方法另外ps一下
没有默哀3分钟
这些问题都可以在MSDN中找到答案...多看MSDN...
是因为String.Equels方法被重写了 他会按照当前线程的语言设置 做一个比较
而不是比较引用地址
string是引用类型,==返回true,是因为string类重写了操作符==,让它返回的两个字符串内容的比较
在Java中要分清楚 == 操作符 和quals 的有区别
但是在C#中 没有区别 string 是值类型 String 是引用类型
你可以自己测试一下嘛
相当于在代码文件中做了如下声明
using System.String = string;其实我们自己也可以这样用
using MyNameSpace.MyClass = ccccc;2。string 或者说 System.String 是引用类型
虽然说 string 是引用类型,但它看上去更像是值类型
因为一点:string 不可改变,string一旦改变,会立刻生成另一个string
看下面的代码 就一共生成了2个string对象
string s1 = string.Empty;
s1 = "wfyfngu";3。操作符重载
相当于在代码文件中做了如下声明
using System.String = string;
//这个,你说反了吧
http://book.csdn.net/bookfiles/684/10068421451.shtml
string str1 = "abc";
string str2 = "abc";
引用类型,都是指向"abc"的那块内存地址。
若是用new的话,地址则会不同。
从这里学会一种方法,而不是一点string的东西,多看看msdn
string 是一个特殊的引用类型,它的特殊之处就是你所问的
string str2 = "abc";
Console.WtriteLine(str1 == str2); 听说是引用类型,可是上面的语句,为什么输出的是true?
string 是引用类型.
str1 == str2 表示两个sting进行比较运算,结果自然是true,这跟比较的两个操作类型
没有直接联系,只要这两个操作数类型支持相应的运算符方法还有,string和String有什么区别?string 是表示,声明(字符串)类型的关键字
String 则是表示(字符串)类 ,是类就可能包括公共方法,字段等,
Item 9: Understand the Relationships Among ReferenceEquals (), static Equals(), instance Equals (), and operator==
而String是一个类.