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