2014-07-07 148 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

的主題我會建議任何編碼風格是一致並有儘可能簡單的規律可循,所以我會建議對不同情況下使用不同的情況。挑一個並堅持下去。