Erro do Compilador CS0703

Acessibilidade inconsistente: tipo de restrição 'identifier' é menos acessível do que 'identifier'

Uma restrição não pode forçar o parâmetro genérico a ser menos acessível do que a própria classe genérica. No exemplo a seguir, embora a classe genérica C<T> seja declarada como pública, a restrição tenta forçar o T a implementar uma interface interna. Mesmo se isso fosse permitido, somente os clientes com acesso interno seriam capazes de criar o parâmetro para a classe, então, na verdade, a classe pode ser usada somente por clientes com acesso interno.

Para eliminar esse erro, verifique se o nível de acesso da classe genérica não é menos restritivo do que quaisquer classes ou interfaces que aparecem nos limites.

O exemplo a seguir gera o erro CS0703:

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