面试或者笔试的时候 曾经遇到过这个问题
其实以前还没有深究过
不过觉得挺有意思 就百度了一下 自己理解了 也贴上来 大家众乐乐
=================================================
C#是区分大小写的,并且同时存在String与string。
MSDN中对string的说明:string is an alias for String in the .NET Framework。string是String的别名而已。
string是c#中的类,String是Framework的类。
C# string映射为 Framework的 String。还有一点就是,string在编译后要变成String,如果用string,编译器会把它编译成String,所以如果直接用String就可以让编译器少做一点点工作,所以,String比string要快那么一点点点点点点点点点....呵呵。
如果使用C#,建议使用string,比较符合规范 。
string始终代表 System.String(1.x) 或 ::System.String(2.0) ,String只有在前面有using System;的时候并且当前命名空间中没有名为String的类型(class、struct、delegate、enum)的时候才代表System.String。
string是关键字,String不是,也就是说string不能作为类、结构、枚举、字段、变量、方法、属性的名称,而String可以。
String 的实例被称为是“不可变的”,这是由于一旦创建它就无法修改它的值。看似能修改 String 的方法实际上只是返回一个包含修改内容的新 String。如果需要实际修改类似字符串的对象的内容,请使用 System.Text.StringBuilder 类。
如果可能,尽量使用这些别名,因为这些别名是根据framework的不同而可能和不同的类相对应的。
protected void Page_Load(object sender, EventArgs e)
{
string str1 = "http://blog.csdn.net/wenjunsu";
String str2 = "http://blog.csdn.net/wenjunsu";
if (str1 == str2)
Response.Write("ok");
else
Response.Write("no");
}
结果输出为ok
=================================================