在C#中,String和string之间的区别是什么?

例子(注意案例)。

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

各自使用的准则是什么?又有哪些的区别***?

解决办法

string是C#中System.String的一个别名。
所以从技术上讲,没有什么区别。 这就像intvs. System.Int32

就准则而言,一般建议在引用一个对象时使用string

例如

string place = "world";

同样地,我认为如果你需要特别指代类,一般建议使用String

例如

string greet = String.Format("Hello {0}!", place);

这是微软在他们的例子中倾向于使用的风格。

现在看来,这方面的指导可能已经改变了,因为StyleCop现在强制要求使用C#的特定别名。

评论(35)

System.String是.NET的字符串类 - 在C#中stringSystem.String的别名 - 所以在使用上它们是一样的。

至于准则,我不会太过纠结,只要使用你觉得合适的就可以了--生活中还有更重要的事情,反正代码都是一样的。

如果你发现自己建立的系统有必要指定你所使用的整数的大小,所以倾向于使用Int16Int32UInt16UInt32等,那么使用String可能看起来更自然--当在不同的.net语言之间移动时,它可能使事情更容易理解--否则我会使用string和int。

评论(3)

小写的 "string "是 "System.String "的一个别名。 它们在`C#中是一样的。

关于应该使用System类型(System.Int32System.String等)类型还是C#别名intstring等),存在着争议。我个人认为你应该使用`C#别名',但这只是我的个人偏好。

评论(2)