对象/对象的大写约定

时间:2014-07-07 12:34:11

标签: c# .net object coding-style naming-conventions

在c#中,关键字Objectobject可以互换使用 其他基本类型的工作方式相同:String / stringDouble / double,...

是否有使用其中一种的约定?

推荐以下哪一项:

object x = new object();

Object x = new Object();

object x = new Object();

怎么样:

object.ReferenceEquals(a,b);
Object.ReferenceEquals(a,b);

我问主要是因为小写new object()对我来说只是看错了,但这是我在自动完成时从Visual Studio获得的建议Object x = new ...

2 个答案:

答案 0 :(得分:1)

至于我的观点,我喜欢(并建议)在处理实例时使用小写 object,例如:

object myVar;
object myVar = new object();
object[] myVar = new object[4];

public void someMethod(object arg);
public object someMethod();

//And so on...
处理类型或类本身时,

大写 Object,即静态方法

例如,

bool result = Object.Equals(obj1, obj2);
string formatted = String.Format(text, arg1, arg2, arg3);

答案 1 :(得分:1)

与大多数编码风格的答案一样,没有“正确的方法”,只有个人观点。虽然我试图用理性的论据来表达我的观点。

我看待它的方式是:

  • System.Object不是严格的C#,它是CLR类型。
  • object是C#关键字。

因此,如果我正在编写C#,我更喜欢使用C#语法,而不是基础CLR类型。

另一个主要区别是object是语法颜色的关键字,Object是参考类型。我倾向于使用内在函数的关键字,因此它们看起来像是内置的而不是用户定义的类型。

第三个区别是object总是意味着相同的事情,而你可以定义自己的类型Object(在与System不同的命名空间中),这可能更容易导致混淆。

总的来说,我更喜欢object

我建议任何编码风格的主题是保持一致并且最简单的规则可以遵循,所以我建议不要在不同的情况下使用不同的情况情况。选择一个并坚持下去。