这两者之间有什么区别,我应该使用哪一个?
string s = "Hello world!";
String s = "Hello world!";
这两者之间有什么区别,我应该使用哪一个?
string s = "Hello world!";
String s = "Hello world!";
当前回答
两者之间没有区别,您可以在代码中使用其中一个。
System.String 是一个类(参考类型)定义的 mscorlib 在名空间系统. 换句话说, System.String 是 CLR 的类型。
string 是 C# 的关键词
其他回答
字符串是保留的单词,但字符串只是一个类名称,这意味着字符串本身不能作为变量名称使用。
如果出于某种原因,你想要一个变量称为字符串,你只会看到这些编辑中的第一个:
StringBuilder String = new StringBuilder(); // compiles
StringBuilder string = new StringBuilder(); // doesn't compile
如果你真的想要一个变量名称,称为字符串,你可以使用 @ 作为预定:
StringBuilder @string = new StringBuilder();
另一个关键差异:Stack Overflow以不同的方式突出它们。
最好的答案我曾经听说过关于使用提供的类型联盟在C#来自Jeffrey Richter在他的书CLR Via C#。
我已经看到一些开发人员混淆,不知道是否使用线条或线条在他们的代码. 因为在C#的线条(一个关键字)地图准确到System.String(一个FCL类型),没有区别,也可以使用。 在C#,长地图到System.Int64,但在不同的编程语言,很长时间可以地图到Int16或Int32. 事实上,C++/CLI实际上处理很长时间作为Int32. S
BinaryReader br = new BinaryReader(...);
float val = br.ReadSingle(); // OK, but feels unnatural
Single val = br.ReadSingle(); // OK and feels good
所以你有它,我认为这些都是很好的点,但是,我找不到自己在自己的代码中使用杰弗里的建议,也许我太困在我的C#世界里,但我最终试图让我的代码看起来像框架代码。
字符串是关键词,你不能用字符串作为识别器。
条纹不是一个关键词,你可以用它作为一个标识:
例子
string String = "I am a string";
关键词行是 System.String 与关键词问题相同的标志,两者都是相同的。
typeof(string) == typeof(String) == typeof(System.String)
它已被覆盖; 但是,你不能在反射中使用线条; 你必须使用线条。
线条:一个线条对象被称为不可改变(仅阅读),因为它的值一旦创建,就无法修改。 似乎改变一个线条对象的方法实际上返回一个包含修改的新线条对象。
字符串: 字符串类型代表一个序列的零或多个 Unicode 字符. 字符串是字符串在.NET 框架中的字符串的标志. 字符串是内在的 C# 数据类型,是系统提供的类型“System.String”的标志。
String 与 String 的区别: