在C#中有 String 对象和 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 Type,一个是特定于C#的,后者原来是一个返回System.String的别名。

http://msdn.microsoft.com/ EN-US /库/ 362314fe(VS.71)的.aspx

没有区别。 string是编译器转换为System.String的别名。

事实上,它甚至在MSIL中出现了别名:

.method private hidebysig static void  Main(string[] args) cil managed

它们之间没有区别。 string只是System.String的别名。编译时,它们都被编译为System.String对象。

小写版本只是实际类String的别名。就IL产生而言,没有真正的区别。

没有区别。 string是一个C#语言关键字,它引用类System.String,就像int是一个引用System.Int32的关键字一样。

将来,尝试编译使用两者的应用程序,然后使用Reflector(将语言更改为IL)来查看已编译的输出。你会发现没有区别。

没有区别,因为编译器将字符串转换为System.String。与所有常见类型相同(int转到System.Int32等)。我们使用简单的名称,以便脱颖而出。

考虑到“ int”在某些语言中,根据16位/ 32位系统,“字符串”是不同的。可能在将来演变为与System.String不同。

但现在是。

稍微注意一下: string / String不是唯一的别名: 例如。 Integer,Int32,int都是别名。

@mliesen:它不会发生在C#中,它不像C.这是因为从C#开始,你不会创建可执行文件,而是像java一样编译每个编译代码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top