在C#中有String
对象和string
对象。
两者有什么区别? 什么是关于其使用的最佳做法是什么?
在C#中有String
对象和string
对象。
两者有什么区别? 什么是关于其使用的最佳做法是什么?
没有区别。 串(小写)仅仅是System.String的别名。
没有不同。 System.String
是严格相同string
。 常见的C#编码规范表明您应该使用关键字string
。
他们是别名,并可以互换。 然而,在风格上,为宣言,我用的是小写的字符串,而对于静态方法,我用String。
string foo = "bar";
if( foo != String.Empty )
{
Console.WriteLine(String.Format("foo.Length = {0}", foo.Length));
}
一个System.String设置.NET类型和一个特定于C#,其原来是一个别名回System.String。
http://msdn.microsoft.com/en-us/library/362314fe(VS.71).aspx
没有差异。 字符串是编译器转换为System.String的别名。
事实上,它甚至在别名MSIL:
.method private hidebysig static void Main(string[] args) cil managed
他们之间没有什么区别。 字符串仅仅是System.String的别名。 在编译时他们都被编译成System.String对象。
小写版本只是一个别名实际String类。 有没有真正的区别就IL产生。
在未来,尝试编译同时使用一个应用程序,然后使用反射镜(语言更改为IL)来查看编译后的输出。 你会看到没有区别。
没有区别,因为字符串是由编译器转换为System.String。 同样的,所有的常见类型(INT去为System.Int32等)。 我们用简单的名称,使他们脱颖而出。
没有区别。 字符串是一个C#语言的关键字它指的是类System.String,就像int是是指为System.Int32关键字。
考虑到这是一个“整数”是根据16位/ 32位系统上的某些语言不同,一个“串”可能在未来的发展,以不一样的System.String。
但现在它是。
只是有点注:串/串是不是唯一的几个别名:如。 整数的Int32,诠释都是别名。
@mliesen:它不会在C#happend,它不像C.这是因为从C#你不创建可执行的,但每个编译的代码,如Java。