这两者之间有什么区别,我应该使用哪一个?
string s = "Hello world!";
String s = "Hello world!";
这两者之间有什么区别,我应该使用哪一个?
string s = "Hello world!";
String s = "Hello world!";
当前回答
如果有用的是真正看到没有线和System.String之间的区别:
var method1 = typeof(MyClass).GetMethod("TestString1").GetMethodBody().GetILAsByteArray();
var method2 = typeof(MyClass).GetMethod("TestString2").GetMethodBody().GetILAsByteArray();
//...
public string TestString1()
{
string str = "Hello World!";
return str;
}
public string TestString2()
{
String str = "Hello World!";
return str;
}
两者都产生相同的 IL 比特序列:
[ 0, 114, 107, 0, 0, 112, 10, 6, 11, 43, 0, 7, 42 ]
其他回答
在一个优化CIL(是MSIL)背景(.NET VM 组合语言)中的其他语言 -.NET 框架或 Mono 或任何 CIL 类型的区域在一本针对多个.NET 语言(如 VB.NET、 F# 等)的书中。
因此,真正的答案是,仅仅是因为C#必须与其他语言共享.NET 空间,这个问题甚至存在。
C、总结...
对于您的内部组织,如果您也使用 VB.NET 或 F# 或任何其他.NET 语言,或者开发图书馆用于客户的消费,那么您应该在这些背景下使用“Frameworky”类型,以便每个人都能理解您的界面,无论您是谁。
HTH。
C# 是与 CLR 一起使用的语言。
字符串是 C# 的类型。
System.String 是 CLR 中的一种类型。
当您使用 C# 与 CLR 行一起时,将被地图到 System.String。
理论上,你可以实施一个C#编译器,产生Java bytecode. 这个编译器的敏感实施可能将地图链到java.lang.String,以便与Java运行时间图书馆互动。
正如上面提到的那样,它们是相同的,而丝线只是对丝线的标志。
对于什么是值得的,我使用链来宣布类型 - 变量,属性,回报值和参数. 这与其他系统类型的使用一致 - int, bool, var 等(尽管 Int32 和 Boolean 也是正确的)。
我使用 String 在 String 类上使用静态方法,如 String.Split() 或 String.IsNullOrEmpty()。我觉得这更有意义,因为方法属于一个类,并且与我使用其他静态方法一致。
标签: 代表一类
字符串: 代表一个 alias
这只是微软的编码协议。
是的,这不是他们之间的区别,就像博尔和布莱恩一样。