这两者之间有什么区别,我应该使用哪一个?
string s = "Hello world!";
String s = "Hello world!";
这两者之间有什么区别,我应该使用哪一个?
string s = "Hello world!";
String s = "Hello world!";
当前回答
有一个区别 - 您不能使用 String 没有使用系统; 提前。
其他回答
我只是想把这个添加到Lfousts的答案,从Ritchers的书:
C# 语言规格说:“在风格问题上,使用关键字优于使用完整的系统类型名称。我不同意语言规格;我更喜欢使用 FCL 类型名称,完全避免原始类型名称。
我没有得到他的意见,直到我阅读完整的段落。
有一个实用的区别在线和线之间。
nameof(String); // compiles
nameof(string); // doesn't compile
這是因為字符串是一個關鍵字(在這種情況下,一個名稱),而字符串是一個類型。
同样的情况也适用于其他联盟。
| Alias | Type |
|-----------|------------------|
| bool | System.Boolean |
| byte | System.Byte |
| sbyte | System.SByte |
| char | System.Char |
| decimal | System.Decimal |
| double | System.Double |
| float | System.Single |
| int | System.Int32 |
| uint | System.UInt32 |
| long | System.Int64 |
| ulong | System.UInt64 |
| object | System.Object |
| short | System.Int16 |
| ushort | System.UInt16 |
| string | System.String |
在 MSDN 文档的背景下, String 类像任何其他数据类型(例如 XmlReader、StreamReader)一样在 BCL 中文档。
字符串被记录为一个关键字(C#参考)或任何基本的C#语言构造(例如,为,同时,默认)。
参考。
在 C# 中, string 是 System.String (String) 的短手版本,它们基本上是相同的。
它就像博尔和布莱恩,没有太大的区别。
字符串是字符串的类别. 如果您从使用声明中删除系统名称空间,您可以看到字符串已经消失,但字符串仍然在这里. 字符串是字符串的关键词. 如 int 和 Int32 短语和 Int16 长语和 Int64 因此,关键词只是使用一个类别的一些词。