Error del compilador CS0060

Accesibilidad incoherente: la clase base 'Class1' es menos accesible que la clase 'Class2'

En C#, una clase derivada no puede tener una accesibilidad más amplia que su clase base. Si la clase base es menos accesible, los consumidores de la clase derivada podrían obtener acceso involuntariamente a una clase que no deberían ver.

Las subclases nunca pueden ser más accesibles que sus clases base. Esto permitiría que los consumidores de la subclase tuvieran acceso más amplio al tipo base de lo previsto.

El ejemplo siguiente genera la advertencia CS0060 porque Class1 es internal y Class2 es public.

internal class Class1
{
}

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

Puede resolver el error CS0060 de una de estas dos maneras:

  • Hacer que la clase base sea más accesible: cambie Class1 para que sea public.
  • Restringir la accesibilidad de la clase derivada: cambie Class2 para que sea internal.

Sugerencia

Las clases base pueden ser más accesibles que sus subclases, pero nunca menos accesibles.

Consulte también