2014-07-07 149 views
0

在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()只是看起来我错了,但就是建议我从视觉获得工作室当我自动完成Object x = new ...

+0

我知道,但是使用另一个别名的约定是什么?推测这些别名是因为某个原因而添加的。 – HugoRune

+1

[字符串和字符串有什么区别?](这个问题的前2个答案应该回答你的问题相当充分。 –

+0

如果我不得不冒险猜测,可能会添加别名,以便通知您它是“保留”类型,以便您可以轻松区分.NET本机类型和自己的手动类型。至于公约?如果别名在那里,我使用它,只是因为我喜欢它的方式:)。 –

回答

1

至于我的意见,我喜欢(和推荐)使用小写与实例打交道时,例如:

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

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

//And so on... 

而且大写Object与类型或类本身,即静态方法打交道时object

例如,

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

请注意,在'static'方法调用的情况下'Object.'可以被省略,因为你所在的''class''或'struct'从System.Object继承(直接或间接),所以是否包含班级名称也是一个惯例。 –

1

与大多数编码风格的答案,没有“正确的方式”,只是个人意见。尽管我试图用理性的论据来提出我的观点。

我看它的方式是:

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

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

另一个主要区别是object是语法着色的关键字,而Object作为参考类型。我的首选是使用内部关键字,所以它们看起来像内置的东西而不是用户定义的类型。

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

所以余额我宁愿object

的主题我会建议任何编码风格是一致并有尽可能简单的规律可循,所以我会建议对不同情况下使用不同的情况。挑一个并坚持下去。