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

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

当前回答

Jeffrey Richter 写道:

另一种方法是C#编译器自动假设您在所有源代码文件中使用下列指南:

using int = System.Int32;
using uint = System.UInt32;
using string = System.String;
...

我已经看到一些开发人员混淆了,不知道是否在他们的代码中使用线条或线条. 因为在C#线条(一个关键词)地图准确到System.String(一个FCL类型),没有区别,也可以使用。

其他回答

表示带变量与带,但在访问其静态成员之一时使用带类:

String.Format()

变量

string name = "";

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

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

考虑一下:

String someString; 
string anotherString; 

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

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

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

然而,两者之间没有区别 - 行似乎是考虑到其他开发者的源代码时最受欢迎的选项。

没有区别。

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

同样, int 地图到 System.Int32.