我如何解释何时使用字符串和何时使用String

时间:2012-10-02 22:39:39

标签: c# .net

  

可能重复:
  What is the difference between String and string

我正在使用string作为变量,例如

string myString = "test";

如果我想使用类字符串的某些方法(?),我正在使用String

String.Format...

我认为这看起来更好。买一些人正在做的事情

String myString;
string.Format...

它的工作。但我不喜欢这个。我怎么能告诉他们停下来?对于像这样的东西,有“C#规则”吗? intInt也是如此; charChar; ...

3 个答案:

答案 0 :(得分:9)

stringSystem.String的C#别名。

如果编写C#,您应该使用别名,因此string.Formatstring myString

最终编译为同一个IL并且意思相同,但C#有它的习语,使用类型别名是它们的一部分 - 就像你使用int而不是{{1 }}

答案 1 :(得分:2)

如果您正在处理更大的项目并确保您可以轻松阅读团队中任何开发人员编写的代码,则编码指南非常重要。

不幸的是,没有关于如何格式化C#代码的官方指南。微软本身在开发.NET框架时遇到了这个问题,并开发了一套内部风格指南,这些指南已经发展成为一个名为StyleCop的完整程序,它有一个默认的规则集,具有合理的设置。

根据这些规则,您应始终使用string代替String

string xyz;
string.Format();

规则如下:

  

SA1121 - UseBuiltInTypeAlias - 可读性规则

     

代码使用一种基本的C#类型,但不使用内置的   该类型的别名。

     

而不是使用类型名称或完全限定类型名称   应始终使用这些类型的内置别名:bool,byte,   char,decimal,double,short,int,long,object,sbyte,float,string,   ushort,uint,ulong。

推荐阅读是您可以在这里找到的StyleCop的历史记录:

http://stylecop.codeplex.com/wikipage?title=A%20Brief%20History%20of%20CSharp%20Style&referringTitle=Documentation

它解释了您在不同背景下处理相同代码库的不同人员遇到的一些问题以及他们如何开发规则集。

我们最近在我们自己的项目中实现了StyleCop,尽管真正遵循所有规则需要做很多工作,但最终的代码更具可读性。它还具有相当好的ReSharper集成功能,如果您使用ReSharper,它可以自动执行许多修复。

答案 2 :(得分:0)

我通常将其表达为,"如果语言中存在相同的原始类型,则更喜欢它。"在您的特定情况下,使用哪种样式是首选项,而不是对功能有重大影响的样式。重要的是所选择的任何风格始终由团队中的每个人应用