这两者之间有什么区别,我应该使用哪一个?
string s = "Hello world!";
String s = "Hello world!";
这两者之间有什么区别,我应该使用哪一个?
string s = "Hello world!";
String s = "Hello world!";
当前回答
绳子指一个带物体,它具有各种功能来操纵所包含的绳子。
字符串指一个原始类型
在 C# 中,他们都编写到 String 但在其他语言中,他们不这样做,你应该使用 String 如果你想处理 String 对象和 string 如果你想处理字母。
其他回答
@JaredPar(C#编辑器的开发者和繁荣的SO用户!)写了一篇关于这个问题的博客文章,我认为值得分享。
string vs. string 不是风格辩论
[...]
识别器 String 虽然没有具体的含义在 C#. 它是一个识别器,通过所有的名称搜索规则,如 Widget, 学生, 等... 它可以连接到链条或它可以连接到一个类型在另一个组合,其目的可能完全不同于链条. 更糟糕的是,它可以定义的方式,这样的代码,如 String s = “你好”; 继续编译。
[...]
所以请记住,当你看到 String vs. String 讨论时,这就是关于语法,而不是风格。 选择 String 会给你的代码基础带来微妙的意义. 选择 String 不是错误的,但它会让未来惊喜的门开放。
string 是 System.String 的 C# 中的一个 alias. 所以技术上,没有区别. 它就像 int vs. System.Int32.
至于指导方针,一般建议在您提到对象时使用字符串。
吉。
string place = "world";
同样,我认为一般建议使用 String 如果你需要具体提到课堂。
吉。
string greet = String.Format("Hello {0}!", place);
这是微软在其例子中使用的风格。
似乎该领域的指导方针可能已经改变了,因为StyleCop现在强制使用C#特定的联盟。
我更喜欢使用线条,因为这种类型是如此使用,我不希望合成亮度将其与所有其他类混合。虽然它是一个类,它被使用更像原始,所以我认为不同的亮度颜色是合适的。
如果你正确点击字符串的关键字,然后从背景菜单中选择去定义,它会带你到字符串类 - 它只是合成糖,但它提高了可读性 imo。
C# 是与 CLR 一起使用的语言。
字符串是 C# 的类型。
System.String 是 CLR 中的一种类型。
当您使用 C# 与 CLR 行一起时,将被地图到 System.String。
理论上,你可以实施一个C#编译器,产生Java bytecode. 这个编译器的敏感实施可能将地图链到java.lang.String,以便与Java运行时间图书馆互动。
在 C# 中, string 是 System.String (String) 的短手版本,它们基本上是相同的。
它就像博尔和布莱恩,没有太大的区别。