2014-12-10 159 views
1

在Java中,如果兩個類在一個頂級類中定義,它們可以訪問彼此的私有成員(字段,構造函數和方法)。因此,在以下情況下,您可以在ClassB之內使用ClassA的所有私有成員,反之亦然。從其他類訪問私有成員

public class TopLevelClass { 

    private static class ClassA { 
     // Code omitted 
    } 

    private static class ClassB { 
     // Code omitted 
    } 
} 

你能做類似的C#嗎?

回答

2

即使C#中嵌套的類,兩個單獨的(不是嵌套在其他類中)類也不能訪問彼此的私有成員(即使它們共享一個父類)。然而他們可以通過訪問父類的私有成員。

如果您真的需要,您可以使用反射訪問私人成員,當然,如果您需要訪問他們,他們可能不應該是private首先。

有關更多信息,請參閱Nested Types

+0

下載者是否會關注評論? – BradleyDotNET 2014-12-10 21:34:41

+0

謝謝。我認爲這是答案 - 我只是想要確認。我發現在Java中非常有用的一種方法是編寫僅用於定義的頂級類的幫助類。對於這些類,我可以將所有內容都設置爲私有,而不必擔心寫入訪問方法。 – 2014-12-10 21:41:33

+0

@pbabcdefp總是有自動屬性:) – BradleyDotNET 2014-12-10 21:43:16