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

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

当前回答

图像结果为 string vs String www.javatpoint.com 在 C# 中, string 是.NET 框架中的 string 类的 alias. 事实上,每个 C# 类型都有.NET 的同等值. 另一个小差异是,如果你使用 string 类,你需要进口系统名称空间,而你不需要在使用 string 关键词时进口名称空间。

其他回答

Jeffrey Richter 写道:

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

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

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

字符串等于 System.String 在 VS2015 如果您写下此:

System.String str;

如何编辑器将显示潜在的修复,以优化它,并在应用该修复后,它将看起来像这个

string str;

在 C# 中, string 是 System.String (String) 的短手版本,它们基本上是相同的。

它就像博尔和布莱恩,没有太大的区别。

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

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:当呼叫会员时,他们更喜欢线条)。

在 C# 中,线和线之间没有重大区别。

String 是系统名称空间中的.NET 框架中的一个类,完全合格的名称是 System.String。

但是,它建议使用字符串,同时声明变量如:

string str = "Hello";

我们可以使用 String 同时使用任何内置方法为 String.IsNullOrEmpty(等线条。

此外,这两者之间的区别就像在使用 String 之前,我们必须在 CS 文件中输入系统名称空间,并且可以直接使用 String。