这两者之间有什么区别,我应该使用哪一个?

string s = "Hello world!";
String s = "Hello world!";

当前回答

事实上,每个 C# 类型都有一个相当于.NET. 作为另一个例子,在 C# 地图中简短和 int 到 Int16 和 Int32 在.NET. 因此,技术上没有线和线之间的区别,但在 C# 中,线是.NET 框架中的线类的标志。

其他回答

.NET 类型与其他对象类型相同的颜色(值类型是合适的对象,毕竟)。

条件和控制的关键词(如如果,交换和返回)是下层和彩色黑蓝色(默认情况下)。

考虑一下:

String someString; 
string anotherString; 

至少有四种差异:

字符串是保留的单词,但字符串只是一个类名称,这意味着字符串本身不能作为变量名称使用。

2、你不能使用 String 而不“使用系统”。所以你用“string”写得更少。

3、“String”比“string”更好地命名公约,因为它是一种不变的类型。

“String”是大多数编辑器中突出的C#关键字和合成,但不是“String”。

字符串是 System.String 的字符串(或短手) 这意味着,通过输入字符串,我们指的是 System.String. 您可以在思考链接中阅读更多: 字符串是 System.String 的字符串/短手。

但从编码指南的观点,最好使用字符串而不是字符串,这就是开发人员通常使用的。 例如,而不是使用 Int32 我们使用 int 作为 int 是 alias 到 Int32

FYI “关键字行仅仅是预先定义的类 System.String 的名称” - C# 语言规格 4.2.3 http://msdn2.microsoft.com/En-US/library/aa691153.aspx

C# 是与 CLR 一起使用的语言。

字符串是 C# 的类型。

System.String 是 CLR 中的一种类型。

当您使用 C# 与 CLR 行一起时,将被地图到 System.String。

理论上,你可以实施一个C#编译器,产生Java bytecode. 这个编译器的敏感实施可能将地图链到java.lang.String,以便与Java运行时间图书馆互动。