C#中String和string區別

l_serein發表於2012-11-06

第一種解釋:

string是c#中的類,String是.net Framework的類(在c# IDE中不會顯示藍色) c# string對映為.net Framework的String 如果用string,編譯器會把它編譯成String,所以如果直接用String就可以讓編譯器少做一點點工作 string是關鍵字,String不是,也就是說string不能作為類、結構、列舉、欄位、變數、方法、屬性的名稱,而String可以

第二種解釋:

String是一個類,string是一種資料型別. 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可以 

 

第三種解釋:

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!至於為什麼,還是大家自己看看這本書

相關文章