アクセシビリティに一貫性がありません:基底クラス 'Class1' はクラス 'Class2' よりもアクセシビリティが低い
C# では、派生クラスは基底クラスよりも広いアクセシビリティを持つことはできません。 基底クラスのアクセシビリティが低い場合、派生クラスのコンシューマーは、見てはいけないクラスに誤ってアクセスする可能性があります。
サブクラスが基底クラスよりもアクセスしやすいことはありません。 これにより、サブクラスのコンシューマーは、意図したよりも基本型へのより広範なアクセスが可能になります。
次の例では、 Class1 が internal され、 Class2 が publicされているため、CS0060 が生成されます。
internal class Class1
{
}
public class Class2 : Class1 // 🛑 CS0060: Class1 is less accessible
{
}
CS0060 は、次の 2 つの方法のいずれかで解決できます。
- 基底クラスのアクセシビリティを高める:
Class1をpublicに変更します。 - 派生クラスのアクセシビリティを制限する:
Class2をinternalに変更します。
ヒント
基底クラスはサブクラスよりもアクセシビリティが 高 くなりますが、アクセス性が 低下 することはありません。
こちらも参照ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET