2014-01-12 50 views
0

我已閱讀msdn有關屬性的文章。它們顯示的屬性,例如:屬性和公共字段有什麼區別

// Declare a Name property of type string: 
    public string Name 
    { 
     get 
     { 
      return myName; 
     } 
     set 
     { 
      myName = value; 
     } 
    } 

然後他們說:

一旦性聲明,它們可以被用來作爲好像它們是類的 領域。

public string Name; 

如果我有一個字段:private string name和希望都只有吸氣劑

如果他們剛剛離開,會是什麼區別?我是否應該聲明

public string GetName(){return name;}或者應該使用這些屬性?


有人能告訴我什麼是錯的例子:

private int age; 
public void setAge(int age){ 
    if(age < 100) 
    this.age = age; 
} 
+2

也來自Jon Skeet [爲什麼屬性重要](http://csharpindepth.com/articles/chapter8/propertiesmatter.aspx) –

回答

1

這從CLR通過C#

的數據變量是對象的狀態的一部分。字段由其名稱和類型標識。

屬性對於調用者來說,這個成員看起來像一個字段。但對於類型實現者來說,它看起來像一個方法(或兩個)。屬性允許實施者在訪問該值和/或僅在必要時計算值之前驗證輸入參數和對象狀態。 它們還允許類型的用戶具有簡化的語法。最後,屬性允許您創建只讀或只寫「字段」。

+0

好,但是 – Yoda

+0

因爲你可以從中央位置檢查驗證 –

+0

什麼是中心位置?應該在與聲明字段相同的類中定義setter和getter。 – Yoda

相關問題