1
我有一個泛型類型的內部屬性:內部繼承通用屬性不會允許內部類型
public abstract class MyBaseClass<T>
where T: IMyInterface
{
internal T MyProp { get; }
}
然後,我有一個內部實現的IMyInterface
:
public interface IMyInterface { ... }
internal class MyInternalClass: IMyInterface { ... }
最後我有一個公共子類:
public class MySubClass:
MyBaseClass<MyInternalClass>
{
}
這最後一類拋出一個錯誤:
Inconsistent accessibility: base class
MyBaseClass<MyInternalClass>
is less accessible than classMySubClass
只有兩種類型都是public
,並且內部泛型類型只在內部可見。
這是爲什麼?
它有辦法解決它(不是改變MyInternalClass
其他是public
?)
我認爲這與無法將訪問修飾符設置爲比父級訪問修飾符更公共有關。 – MaKCbIMKo
@MaKCbIMKo是的,但父母是'公共' – Keith
它從'公共抽象類MyBaseClass其中T:IMyInterface'。這一行說「T」可能只是「公開」的東西,因爲這個類本身是「公共」的。你甚至不能通過相同的原因寫'公共抽象類MyBaseClass 其中T:MyInternalClass'。 –
MaKCbIMKo