コンパイラ エラー CS0060

アクセシビリティに一貫性がありません:基底クラス 'Class1' はクラス 'Class2' よりもアクセシビリティが低い

C# では、派生クラスは基底クラスよりも広いアクセシビリティを持つことはできません。 基底クラスのアクセシビリティが低い場合、派生クラスのコンシューマーは、見てはいけないクラスに誤ってアクセスする可能性があります。

サブクラスが基底クラスよりもアクセスしやすいことはありません。 これにより、サブクラスのコンシューマーは、意図したよりも基本型へのより広範なアクセスが可能になります。

次の例では、 Class1internal され、 Class2publicされているため、CS0060 が生成されます。

internal class Class1
{
}

public class Class2 : Class1 // 🛑 CS0060: Class1 is less accessible
{
}

CS0060 は、次の 2 つの方法のいずれかで解決できます。

  • 基底クラスのアクセシビリティを高める: Class1publicに変更します。
  • 派生クラスのアクセシビリティを制限する: Class2internalに変更します。

ヒント

基底クラスはサブクラスよりもアクセシビリティが くなりますが、アクセス性が 低下 することはありません。

こちらも参照ください