夥計,謝謝你的時間。 正如我們所知,關鍵詞'私人'和'保護'是非常有用的,以保持一些方法,領域,屬性從課堂以外的無效訪問。但我在特定情況下遇到了問題。這裏是例子:受保護的和私人訪問修改器的問題
Class Node
{
public string Name {get; private set;}//Private setting authority
public int ID {get;set}
public Node Previous {get;set;}
public Node Next {get;set;}
public void Test()
{
this.Name='Valid';
this.Next.Name='Invalid';//Is this valid??
}
}
就像上面的代碼中,我們得到了一個「節點」類這裏命名爲「上一頁」和「下一頁」這兩種性能也是「節點」 type.Now讓我們專注於「測試()」方法。設置'this.Name'是有效的,但是設置'this.Next.Name'很奇怪嗎?不幸的是,編譯器認爲這是一個有效的格式!
據我所知,'私人'意味着它不能在課外使用。但在這種情況下,我可以訪問到'上一個'和'下一個'的任何非公開成員(私人/受保護等)。
這真讓我困惑不已,請大家給點建議,謝謝!
你想知道爲什麼你可以訪問另一個_instance_的setter?你的代碼在同一個類中,即:'Node'。 – canon
另請參見[爲什麼私有字段是私有的類型,而不是實例?](http://stackoverflow.com/questions/6983553/) –