这两个声明之间有什么区别?
string str;
String str;
答案 0 :(得分:21)
在正常使用情况下,string
和String
相同; 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 ..