我有一個類ClassA
這是其他類的基類。我希望這個類的構造函數是內部的並且是受保護的,所以它不能從我的程序集外部繼承和實例化(我不能將它封閉起來,因爲我有其他內部類繼承它,你可以看到我的其他相關問題here),所以我修改了它是這樣的:受保護的內部構造函數
public abstract ClassA{
internal protected ClassA(){
}
}
我已被告知,由於組合internal protected
被解釋爲internal
OR protected
這顯然使得構造只有protected
:((從可見這是不行的外面)
問題
- 如果是真的,爲什麼
internal protected
解釋爲internal
ORprotected
而不是internal
和protected
? - 有沒有辦法可以聲明一個構造函數的內部和保護?
其實,這是不正確的。在大會之外,「保護」修改器仍在發揮作用。如果僅將空構造函數聲明爲「內部」,則可以繼承該程序集外的類,但不能向其中添加自定義構造函數。如果你讓它成爲「受保護的內部」,那麼你可以。 – RobinHood70
@ RobinHood70我只是回答了他的具體查詢。在一般情況下,你是對的。 – Asti