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

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

当前回答

字符串是保留的单词,但字符串只是一个类名称,这意味着字符串本身不能作为变量名称使用。

如果出于某种原因,你想要一个变量称为字符串,你只会看到这些编辑中的第一个:

StringBuilder String = new StringBuilder();  // compiles
StringBuilder string = new StringBuilder();  // doesn't compile 

如果你真的想要一个变量名称,称为字符串,你可以使用 @ 作为预定:

StringBuilder @string = new StringBuilder();

另一个关键差异:Stack Overflow以不同的方式突出它们。

其他回答

C# 是与 CLR 一起使用的语言。

字符串是 C# 的类型。

System.String 是 CLR 中的一种类型。

当您使用 C# 与 CLR 行一起时,将被地图到 System.String。

理论上,你可以实施一个C#编译器,产生Java bytecode. 这个编译器的敏感实施可能将地图链到java.lang.String,以便与Java运行时间图书馆互动。

如果有用的是真正看到没有线和System.String之间的区别:

var method1 = typeof(MyClass).GetMethod("TestString1").GetMethodBody().GetILAsByteArray();
var method2 = typeof(MyClass).GetMethod("TestString2").GetMethodBody().GetILAsByteArray();

//...

public string TestString1()
{
    string str = "Hello World!";
    return str;
}

public string TestString2()
{
    String str = "Hello World!";
    return str;
}

两者都产生相同的 IL 比特序列:

[ 0, 114, 107, 0, 0, 112, 10, 6, 11, 43, 0, 7, 42 ]

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

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

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

String 是 System.String 的意思,它是.NET Framework 类型. String 是 System.String 的 C# 语言中的一个字符串. 两者都编写到 System.String 在 IL (中间语言),所以没有区别. 选择你喜欢什么,并使用它. 如果你在 C# 中编码,我会更喜欢字符串,因为它是 C# 类型的字符串和由 C# 程序员熟悉。

我可以说同样的事情(int,System.Int32)等。

字符串和字符串之间的微小差异在C#. 字符串只是系统的标志. 字符串. 两个字符串和字符串都是以相同的方式编写的. 答案是非常简单的. 字符串是关键词提供有限的功能,主要使用字符串创建变量如(字符串名称 = “Abrar”). 或者我们可以说这是一个数据类型我们使用特殊的字符串。