2011-05-06 105 views

回答

4

可以限制屬性的getter或setter:

public string MyProperty 
{ 
    get { return _myProperty; } 
    private set { _myProperty = value; } 
} 

它還適用於內部和保護。 但是,這裏的關鍵詞是「限制」 - 你不能讓任何一個修飾符比整體修飾符更容易訪問。

+0

從技術上來說,你可以用一個公開的二傳手來擁有一個私人吸氣器。無論你做什麼,你可以有不同的修飾符獲取或設置。 – light 2011-05-06 18:16:19

+0

@light yes,但是有些情況是不允許的;請參閱下面的答案。 – 2011-05-06 18:17:58

+0

@布萊恩對不起,我沒有考慮到我的答案。你完全正確。 – light 2011-05-06 18:21:38

8

是的,你可以,但是它的規則是你的getter/setter不能擁有比屬性本身更少的訪問權限修飾符。

例如(C#):

public Foo { get; private set; } //this is okay 
protected Bar { get; public set; } //this will throw a compile error