【发布时间】:2011-01-15 12:34:35
【问题描述】:
在 C# 中有 string 和 System.String。
这些有什么区别?一个被认为更好地使用另一个。混用有什么隐患吗?
如果它们是相同的,那么为什么要同时具有它们呢?为什么不只拥有一个?
【问题讨论】:
-
这是多次重复。请看google.com/…
-
我没有意识到它是如此重复。抱歉没有更好地搜索。
在 C# 中有 string 和 System.String。
这些有什么区别?一个被认为更好地使用另一个。混用有什么隐患吗?
如果它们是相同的,那么为什么要同时具有它们呢?为什么不只拥有一个?
【问题讨论】:
System.String 是实际 .NET CLR 类的名称,就像 System.Int32 是该类的真实名称一样。但是 C# 的设计者希望它看起来很像 C 和 C++,其中原生类型(如 int)是小写的,因此他们为基本原生类型添加了别名。
【讨论】:
没有区别。
http://msdn.microsoft.com/en-us/library/362314fe.aspx
字符串类型表示零个或多个 Unicode 字符的序列。 string 是 .NET Framework 中 String 的别名。
【讨论】:
无差别字符串是String的别名。见here
有关详细信息,请参阅C# Language Specification 中的以下部分:
2.4.2 标识符
2.4.4.5 字符串字面量
4.2.3 字符串类型
7.9.7 字符串相等运算符
【讨论】:
string 只是 System.String 的别名
【讨论】: