私は内部プロパティを持つジェネリック型を持って許可されません継承:内部には、一般的なプロパティが内部型
public abstract class MyBaseClass<T>
where T: IMyInterface
{
internal T MyProp { get; }
}
をそれから私はIMyInterface
の内部実装を持っている:
public interface IMyInterface { ... }
internal class MyInternalClass: IMyInterface { ... }
最後に私が持っていますpublicサブクラス:
public class MySubClass:
MyBaseClass<MyInternalClass>
{
}
この最終クラスでは、エラー:がスローされます。
両方ともタイプがInconsistent accessibility: base class
MyBaseClass<MyInternalClass>
is less accessible than classMySubClass
public
であり、内部ジェネリックタイプは内部でのみ表示されます。
これはなぜですか?
そこにそれを回避する方法(public
するMyInternalClass
を変える以外?)
私は、アクセス修飾子を親のものよりも公開することができないことに関連していると思います。 – MaKCbIMKo
@MaKCbIMKoはい、親は 'public'です – Keith
' public abstract class MyBaseClassここからT:IMyInterface'になります。この行は、クラス自体が 'public'なので' T'は 'public'だけであるかもしれないと言います。同じ理由で 'public abstract class MyBaseClass 、どこにT:MyInternalClass'を書くことさえできません。 –
MaKCbIMKo