2010-03-03 88 views

回答

1

您必须参考ClassA的特定实例才能检索成员。如果您的实例名为foo,则只需使用foo._MyId

2

在ClassB的构造函数传递类A.

4

简而言之的一个实例,你需要一个参考实例ClassAClassB

C#的嵌套类与Java的工作方式不同,如果这是你习惯的。当应用于嵌套类型(意味着C#的嵌套类是而不是与外部类的特定实例关联)时,最接近的模拟应该是Java的static class

换句话说,与外部类相比,C#的嵌套类不是“特殊”的,除了它们可以看到外部类的私有成员。尽管如此,你仍然需要引用外部类来访问它们。

2

如果该字段为static,则可以简单地将其称为ClassA._MyId。如果不是,您应该使用classAInstance._MyId,其中classAInstanceClassA的实例。

如果您来自Java背景,您应该注意C#中的嵌套类与static类似于Java中的嵌套类。

1

如果_MyId是静态的,您可以通过它的名称或ClassA._MyId来访问它。

但是除此之外,您首先需要ClassA的实例,并且与另一个类(不嵌套)的acces几乎没有区别。但ClassB的成员确实可以访问ClassA的私人成员。

说明:嵌套类是2个类型之间的静态关系,实例之间没有隐式关系。您必须传递对象之间的引用,就好像这些类没有嵌套一样。

+0

太棒了!谢谢!! – Mike 2010-03-03 17:02:10