Object / Object的大写约定

本文关键字:Object 约定 | 更新日期: 2023-09-27 18:11:50

在c#中,关键字Objectobject可以互换使用。
其他基本类型的工作方式相同:String/string, Double/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 ...

Object / Object的大写约定

在我看来,我喜欢(并推荐)在处理实例时使用小写 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);

与大多数编码风格的答案一样,没有"正确的方法",只有个人意见。尽管我试图用理性的论据来证明我的观点。

我的看法是:

  • System.Object不是严格意义上的c#,它是一个CLR类型。
  • object是c#关键字。

所以如果我在写c#,我更喜欢使用c#语法,而不是底层的CLR类型。

另一个主要区别是object的语法颜色是关键字,而Object是引用类型。我的偏好是使用关键字的内在,使他们看起来像内置的东西,而不是用户定义的类型。

第三个区别是object总是表示相同的东西,而您可以定义自己的类型Object(在与System不同的名称空间中),这可能更容易导致混淆。

所以总的来说我更喜欢object

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