2012-07-19 44 views
0

我有一個內部類內部訪問類型類的一個陣列,其是在一個公共類

namespace commonNamespace 
{ 
    internal class A{} 
} 

我有同樣的組件

public class B{} 

我要聲明的陣列內的另一個公共類A類在classB中。 例如:

namespace commonNamespace 
{ 
    public class B 
    { 
     A[] array; 
    } 
} 

我得到不一致的訪問級別錯誤message.Please讓我知道我能做到這一點。

+3

由於'A [] array'是私有的(由於缺乏訪問修飾符),我不明白爲什麼這是一個問題。這個領域是否真的公開? – 2012-07-19 13:52:27

+1

你在這裏應該沒問題。這只是一個問題,如果'array'被聲明爲public或protected。 – Lee 2012-07-19 13:53:01

+0

您發佈的代碼無問題編譯。 – 2012-07-20 05:43:11

回答

1

只需訪問修飾符添加到域數組:

public class B 
{ 
    internal A[] array; 
} 

這是訪問修飾符層次:

public > protected > internal > internal protected > private 

所以才選擇以下任何保護,你將被罰款。

+0

*不應該*幫助 - 因爲默認是私人的。所以通過聲明'array'變量'internal',你實際上增加了它的可見性。 – 2012-07-19 14:00:07

+0

訪問修飾符層次結構錯誤,「內部保護」意味着「內部」或「受保護」。所以它可以被任何類內部訪問,或者只能被其他程序集中的派生類訪問。 – Lukazoid 2012-07-19 14:14:46

+0

對不起,我有一個接口裏面的數組對象是公開的,因爲我只想暴露assembly之外的接口。但是這個類不應暴露在外面。 – user1538072 2012-07-19 14:17:28

2

您必須擁有公開/受保護的字段或B中的財產才能公開某些A類型的實例。標記爲內部,你應該很好去。

相關問題