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

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

当前回答

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

其他回答

string 是.NET 框架中的 String 的标志。

在哪里“String”实际上是 System.String。

我会说它们是可交换的,没有区别什么时候和在哪里你应该使用一个或另一个。

最好是和你所使用的相一致。

对于什么是值得的,我使用链来宣布类型 - 变量,属性,回报值和参数. 这与其他系统类型的使用一致 - int, bool, var 等(尽管 Int32 和 Boolean 也是正确的)。

我使用 String 在 String 类上使用静态方法,如 String.Split() 或 String.IsNullOrEmpty()。我觉得这更有意义,因为方法属于一个类,并且与我使用其他静态方法一致。

只是为了完整性,这里是一个与相关信息的脑跳动......

正如其他人指出的那样, string 是 System.String 的 alias. 假设使用 String 编译到 System.String 的代码(即您没有使用某些不同的 String 类型的其他名称空间的指令),它们编译到相同的代码,所以在执行时间没有任何差异。

object:  System.Object
string:  System.String
bool:    System.Boolean
byte:    System.Byte
sbyte:   System.SByte
short:   System.Int16
ushort:  System.UInt16
int:     System.Int32
uint:    System.UInt32
long:    System.Int64
ulong:   System.UInt64
float:   System.Single
double:  System.Double
decimal: System.Decimal
char:    System.Char

在特征中,值类型联盟被称为“简单类型”。字母可以用于每个简单类型的恒定的值;没有其他值类型有字母形式可用。

有一個情況,你必須使用連結:當明確指定一個 enum 的基礎類型。

public enum Foo : UInt32 {} // Invalid
public enum Bar : uint   {} // Valid

这只是一个问题,规格如何定义enum声明 - 结尾后的一部分必须是整体类型的生产,这是一个标志的sbyte, byte, short, ushort, int, uint, long, ulong, char......相反的类型的生产,用于变量声明,例如,它不表明任何其他差异。

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

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

字符串是 System.String 的简称,字符串或 System.String 是 CTS(通用类型系统)中的字符串的名称。

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

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

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