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

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

当前回答

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

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

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

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

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

其他回答

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

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

string 是 C# 的关键词

最好的答案我曾经听说过关于使用提供的类型联盟在C#来自Jeffrey Richter在他的书CLR Via C#。

我已经看到一些开发人员混淆,不知道是否使用线条或线条在他们的代码. 因为在C#的线条(一个关键字)地图准确到System.String(一个FCL类型),没有区别,也可以使用。 在C#,长地图到System.Int64,但在不同的编程语言,很长时间可以地图到Int16或Int32. 事实上,C++/CLI实际上处理很长时间作为Int32. S

BinaryReader br = new BinaryReader(...);
float val  = br.ReadSingle(); // OK, but feels unnatural
Single val = br.ReadSingle(); // OK and feels good

所以你有它,我认为这些都是很好的点,但是,我找不到自己在自己的代码中使用杰弗里的建议,也许我太困在我的C#世界里,但我最终试图让我的代码看起来像框架代码。

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

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

考虑一下:

String someString; 
string anotherString; 

string 只是 System.String 的标志,编辑器将以相同的方式处理它们。

唯一的实用差异是你提到的合成突出,如果你使用String,你必须使用系统写作。

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

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

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

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

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