tipo - Error de accesibilidad incoherente con el siguiente código c#. ¿Por qué?
incoherencia de accesibilidad c# (3)
¿Qué pasa con el siguiente código c #? El compilador informa este error:
Accesibilidad incoherente: el tipo de parámetro ''ClassLibrary1.Interface1'' es menos accesible que el método ''ClassLibrary1.Class1.Class1 (ClassLibrary1.Interface1)''
con el siguiente código:
interface Interface1<T>
{
bool IsDataValid();
/* Other interfaces */
}
public class Class1<T>
{
public Interface1<T> interface1;
public Class1(Interface1<T> interface1)
{
this.interface1 = interface1;
}
}
Desde entonces, he diseñado mi código de forma diferente con inheritence, pero si alguien pudiera decirme qué es lo que está mal, lo agradecería muchísimo.
Marque su interfaz como pública:
public interface Interface1<T>
Si omite la etiqueta de accesibilidad, su valor predeterminado es internal
, es decir, solo accesible para otras clases dentro del ensamblaje.
su "Interface1" no es pública ...
public interface Interface1<T>
{
bool IsDataValid();
/* Other interfaces */
}
La segunda solución es: si su interfaz no es pública, no haga que su clase sea pública donde esté haciendo un manejo de interfaz.