从嵌套类到包含类的C#成员访问
我有类B,它嵌套在类A中。在ClassA中,我有一个名为_MyId的变量。。。如何从ClassB访问\u MyId从嵌套类到包含类的C#成员访问,c#,C#,我有类B,它嵌套在类A中。在ClassA中,我有一个名为_MyId的变量。。。如何从ClassB访问\u MyId 提前谢谢 您必须引用ClassA的特定实例才能检索成员。如果您的实例被称为foo,只需使用foo即可。_MyId在ClassB的构造函数中传递类A的实例。简单地说,您需要对ClassB中的实例ClassA的引用 C#的嵌套类与Java的工作方式不同,如果您已经习惯了的话。当应用于嵌套类型时,最接近的模拟是Java的静态类(这意味着C#的嵌套类与外部类的特定实例没有关联) 换句话说,
提前谢谢 您必须引用
ClassA
的特定实例才能检索成员。如果您的实例被称为foo
,只需使用foo即可。_MyId
在ClassB的构造函数中传递类A的实例。简单地说,您需要对ClassB
中的实例ClassA
的引用
C#的嵌套类与Java的工作方式不同,如果您已经习惯了的话。当应用于嵌套类型时,最接近的模拟是Java的静态类
(这意味着C#的嵌套类与外部类的特定实例没有关联)
换句话说,与外部类相比,C#的嵌套类不是“特殊”的,只是它们可以看到外部类的私有成员。尽管如此,您仍然需要对外部类的引用才能访问它们。如果字段是
静态的
,您可以简单地将其称为ClassA.\u MyId
。如果不是,您应该使用classAInstance.\u MyId
其中classAInstance
是ClassA
的一个实例
如果您来自Java背景,您应该注意C#中的嵌套类类似于Java中的static嵌套类。如果_MyId是static,您可以通过它的名称或ClassA访问它。_MyId 但除此之外,您首先需要一个ClassA实例,并且与另一个类(不是嵌套的)的acces几乎没有区别。但是B类的成员确实可以访问A类的私有成员 说明:嵌套类是两种类型之间的静态关系,实例之间没有隐式关系。您必须在对象之间传递对对象的引用,就像类没有嵌套一样