Error del compilador CS0703

Actualización: noviembre 2007

Mensaje de error

Accesibilidad incoherente: el tipo de restricción 'identificador' es menos accesible que 'identificador'
Inconsistent accessibility: constraint type 'identifier' is less accessible than 'identifier'

Una restricción no puede obligar al parámetro genérico a ser menos accesible que la propia clase genérica. En el siguiente ejemplo, aunque se declara que la clase genérica C<T> es public, la restricción intenta forzar a T a que implemente una interfaz interna. Incluso si estuviera permitido, sólo los clientes con acceso interno podrían crear el parámetro de la clase, de modo que, en la práctica, sólo podrían utilizar la clase los clientes con acceso interno.

Para corregir este error, asegúrese de que el nivel de acceso de la clase genérica no sea menos restrictivo que las clases o interfaces que aparecen en los límites.

El código siguiente genera el error CS0703:

// CS0703.cs
internal interface I {}
public class C<T> where T : I  // CS0703 – I is internal; C<T> is public
{
}