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

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

当前回答

字符串是关键词,你不能用字符串作为识别器。

条纹不是一个关键词,你可以用它作为一个标识:

例子

string String = "I am a string";

关键词行是 System.String 与关键词问题相同的标志,两者都是相同的。

 typeof(string) == typeof(String) == typeof(System.String)

其他回答

我只是想把这个添加到Lfousts的答案,从Ritchers的书:

C# 语言规格说:“在风格问题上,使用关键字优于使用完整的系统类型名称。我不同意语言规格;我更喜欢使用 FCL 类型名称,完全避免原始类型名称。

我没有得到他的意见,直到我阅读完整的段落。

晚到派对:我使用CLR类型百分之百的时间(好,除非被迫使用C#类型,但我不记得最后一次是什么时候)。

我起初在几年前开始做这件事,就像Ritchie的CLR书一样,这对我来说是有意义的,所有的CLR语言最终必须能够支持CLR类型,所以使用CLR类型自己提供了更清晰、可能更“可用”的代码。

现在我已经做了多年,这是一个习惯,我喜欢VS为CLR类型的颜色。

唯一真正的下载器是,自动完成使用C#类型,所以我最终重新编写自动生成的类型来指定CLR类型。

此外,现在,当我看到“int”或“string”,它似乎对我来说是真的错误的,就像我看到了1970年代的C代码一样。

下面的案例字符串是 System.String 的标志,它们在 C# 中是相同的。

有一个讨论是否应该使用系统类型(System.Int32,System.String等)类型或C#联盟(int, string等)。我个人认为你应该使用C#联盟,但这只是我的个人偏好。

两者之间没有区别,您可以在代码中使用其中一个。

System.String 是一个类(参考类型)定义的 mscorlib 在名空间系统. 换句话说, System.String 是 CLR 的类型。

string 是 C# 的关键词

没有区别。

关键字 C# 连接地图到.NET 类型的 System.String - 这是一个标签,保持到语言的名称公约。

同样, int 地图到 System.Int32.