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

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

当前回答

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

其他回答

正如你所知道的,字符串只是 System.String 的名称,但我应该使用什么?它只是个人偏好。

在我的情况下,我喜欢使用字符串而不是使用 System.String 因为 String 需要使用 System 的名称空间;或者使用 System.String 的全名。

所以我相信 alias string 是为了简单而创建的,我喜欢它!

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

String.Format()

变量

string name = "";

上述的一切基本上是正确的,一个人可以检查它。

public static void Main()
{
    var s = "a string";
}

编辑并打开.exe 与 ildasm 查看

.method private hidebysig static void  Main(string[] args) cil managed
{
  .entrypoint
  // Code size       8 (0x8)
  .maxstack  1
  .locals init ([0] string s)
  IL_0000:  nop
  IL_0001:  ldstr      "a string"
  IL_0006:  stloc.0
  IL_0007:  ret
} // end of method Program::Main

然后变成线条和线条,编译,打开与 ildasm 并看到 IL 不会改变. 它也显示语言的创作者在定义变量时更喜欢线条(spoiler:当呼叫会员时,他们更喜欢线条)。

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

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

Jeffrey Richter 写道:

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

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

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