在c#中,关键字Object
和object
可以互换使用
其他基本类型的工作方式相同: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 ...
答案 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
。
我建议任何编码风格的主题是保持一致并且最简单的规则可以遵循,所以我建议不要在不同的情况下使用不同的情况情况。选择一个并坚持下去。