内部抽象クラスと、から継承するInternalClassBase
2つの(内部)クラスInternalClass1
とがあります。InternalClass2
InternalClassBase
また、パブリック抽象クラスと、から継承するPublicClassBase
2つの(パブリック)クラスPublicClass1
とがあります。PublicClass2
PublicClassBase
はタイプPublicClassBase
の保護されたメンバーを持っているので、両方とそれを使用できます。XXX
InternalClassBase
PublicClass1
PublicClass2
これは私のコードです:
internal abstract class InternalClassBase { }
internal class InternalClass1 : InternalClassBase { }
internal class InternalClass2 : InternalClassBase { }
public abstract class PublicClassBase
{
protected InternalClassBase XXX; // this is where the error happens
}
public class PublicClass1 : PublicClassBase { }
public class PublicClass2 : PublicClassBase { }
私の例にメンバーをPublicClassBase
含めることができないのはなぜですか?それは、、、の内部でのみ表示され、外部では表示されないXXX
と思いました。XXX
PublicClassBase
PublicClass1
PublicClass2
また、アクセス修飾子については理解していると思いましたが、明らかに理解していません:)
編集-エラーはPublicClassBase内のXXXの宣言で発生し、例外メッセージは次のとおりです。一貫性のないアクセシビリティ:フィールドタイプ'ClassLibrary2.InternalClassBase'はフィールド'ClassLibrary2.PublicClassBase.XXX'よりもアクセスしにくいですが、保護する方法は内部よりもアクセスしやすいです?