吉吉于

C#中String与string的区别

我一直纳闷C#中的string和String的区别,今天找了点资料,贴过来。

————————————————————————————————————

版本一:

C#中,字符串的声明,你使用String还是string?

String? string?

只有一个大小写的问题,你习惯用哪个?知道具体的区别吗?

我是习惯了用string,区别也是最近才找到了权威的根据,’CLR via C#’。

其实,String是CLR的类型名称(也算是keyword),而string是C#中的keyword。

在C#的编译时,默认会增加几行代码,看了你就会明白string和String的区别了!

using string = System.String; using sbyte = System.SByte;

using byte = System.Byte; using short = System.Int16;

using ushort = System.UInt16; using int = System.Int32;

using uint = System.UInt32; … …

对了! using string = System.String; C#编译器,会自动的把string转化为Sysem.String!

在CLR via C#中,Jeffrey Richter建议coding时,使用CLR默认的类型,也就是说,不要string,要String;

不要int要Int32!至于为什么,还是大家自己看看这本书吧!

  • string是c#中的类,String是.net Framework的类(在c# IDE中不会显示蓝色)
  • c# string映射为.net Framework的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可以.

 

————————————————————————————————————

版本二:

从位置讲:

1.String是.NET   Framework里面的String,小写的string是C#语言中的string

2.如果把using System;删掉,没有大写的String了,System是.NET   Framework类库中的一个函数名.

从性质讲:

1. string是关键字,String是类,string不能作为类、结构、枚举、字段、变量、方法、属性的名称

2. 用C#编写代码的情况下尽量使用小写的string,比较符合规范,如果在追求效率的情况下可以使用大写的String,因为最终通过编译后,小写的string会变成大写的String,可以给编译减少负荷,从而运行效率提高。

3. string 类型表示 Unicode 字符的字符串,string 是 .NET Framework 中的 String 的别名,对字符串相等性的测试更为直观

转载请注明:于哲的博客 » C#中String与string的区别