2010-03-03 91 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