2012-09-22 40 views
-1

爲什麼getter和setter的默認訪問權限是公開的而非私人的?爲什麼財產製定者默認公開

+0

因爲屬性**是**公開的,所以它假定你想讓獲取者和設置者公開。 – 3aw5TZetdf

+1

@MatthewRz但屬性,像其他任何類成員默認爲私人。 –

+0

如果你很清楚你會提出什麼建議作爲替代方案,這將會非常有幫助。你會期望一個默認宣佈的財產擁有私人的getter和setter嗎?在那一點上它將以什麼方式被公開? –

回答

5

getset屬性的某些部分不是默認公開的,它們被默認爲屬於它們所屬屬性的可見性。該屬性的默認可見性iself是私有的,就像所有其他類型的成員一樣。

0

因爲這是C#的設計方式。

  • 定義字段
  • 定義屬性來訪問該字段

所以預期,你讓現場private,使財產的方式默認行爲,以便能夠write and read從外地調用者(任意的,不僅派生出一個),所以財產get/set方法(如果沒有任何意義使財產公開)變成public

這只是預期的默認行爲,沒有別的。

0

我認爲這是因爲該屬性具有自己的訪問修飾符,實際上描述了一組兩個方法:SomeType getProp()和void setProp(SomeType)。這些方法默認爲屬性。但是如果你想改變其可見性,你可以使用額外的修飾符(例如Prop {get; private set;})來完成它。