内部抽象クラスと、から継承するInternalClassBase2つの(内部)クラスInternalClass1とがあります。InternalClass2InternalClassBase
また、パブリック抽象クラスと、から継承するPublicClassBase2つの(パブリック)クラスPublicClass1とがあります。PublicClass2PublicClassBase
はタイプPublicClassBaseの保護されたメンバーを持っているので、両方とそれを使用できます。XXXInternalClassBasePublicClass1PublicClass2
これは私のコードです:
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と思いました。XXXPublicClassBasePublicClass1PublicClass2
また、アクセス修飾子については理解していると思いましたが、明らかに理解していません:)
編集-エラーはPublicClassBase内のXXXの宣言で発生し、例外メッセージは次のとおりです。一貫性のないアクセシビリティ:フィールドタイプ'ClassLibrary2.InternalClassBase'はフィールド'ClassLibrary2.PublicClassBase.XXX'よりもアクセスしにくいですが、保護する方法は内部よりもアクセスしやすいです?