В Java, если два класса определены внутри одного класса верхнего уровня, они имеют доступ к каждому другому частному члену (полям, конструкторам, методам). Поэтому в ситуации, подобной следующей, вы можете использовать всех частных членов ClassA
внутри ClassB
и наоборот.
public class TopLevelClass {
private static class ClassA {
// Code omitted
}
private static class ClassB {
// Code omitted
}
}
Можете ли вы сделать что-нибудь подобное в С#?
Даже с вложенными классами в С# два отдельных (не вложенных друг в друга) класса не могут обращаться к другим частным членам (даже если они разделяют родителя). Тем не менее они могут обращаться к закрытым членам родительского класса.
Вы можете получить доступ к частным членам, используя рефлексию, если вам действительно нужно, хотя, конечно, если вам нужен доступ к ним, они, вероятно, не должны быть private
в первую очередь.
Подробнее см. Вложенные типы.