“string”和“String”有什么区别?

时间:2010-08-07 10:11:28

标签: c#

这两个声明之间有什么区别?

string str;
String str;

6 个答案:

答案 0 :(得分:21)

在正常使用情况下,stringString相同; string只是global::System.String的别名。但 一些边缘情况:

  • 您需要using System;才能使用String - 您不需要string
  • 如果您定义了本地class String {},则String会引用 (当然,这将是一件愚蠢的事情)。你无法定义一个名为string的类(尽管@string没问题)

答案 1 :(得分:3)

没有区别。 string(小写)只是System.String的别名。

答案 2 :(得分:2)

string是一个c#关键字。 String是System.String .NET类型。

MS提供的C#编译器将string关键字映射到System.String .NET类型,因此它们是等效的。

答案 3 :(得分:2)

没有什么,在C#中,类型关键字实际上是类型的同义词。所以int = System.Int32 short = System.Int16和string = System.String。

答案 4 :(得分:1)

String是System.String对象的别名,所以没有。

System.String是与其他.NET语言交互所必需的公共类型系统类型。 “string”只是此名称的C#快捷方式(同样,int是System.Int32的快捷方式)

答案 5 :(得分:-1)

它们是相同的,没有区别,字符串只是System.String类型的别名,在C#中还有其他类似的情况,如int和System.Int32,long和System.Int64(参见另一个相关的{{3 }})

奇怪的是,尽管您可以在代码中使用别名代替完全限定类型,但在使用question类时仍需要知道基础类型,因为没有ToInt或ToLong方法但只有ToInt32和ToInt64 ..