Erreur du compilateur CS0703
Mise à jour : novembre 2007
Message d'erreur
Accessibilité incohérente : le type de contrainte 'identificateur' est moins accessible que 'identificateur'
Inconsistent accessibility: constraint type 'identifier' is less accessible than 'identifier'
Une contrainte ne peut pas forcer le paramètre générique à être moins accessible que la classe générique elle-même. Dans l'exemple suivant, alors que la classe générique C<T> est déclarée public, la contrainte tente de forcer T à implémenter une interface interne. Même si cela était autorisé, seuls les clients disposant d'un accès interne pourraient créer le paramètre pour la classe ; en conséquence, cette classe ne pourrait être utilisée que par les clients disposant d'un accès interne.
Pour supprimer cette erreur, assurez-vous que le niveau d'accès de la classe générique n'est pas moins restrictif que les classes ou interfaces qui figurent dans les limites.
L'exemple suivant génère l'erreur CS0703 :
// CS0703.cs
internal interface I {}
public class C<T> where T : I // CS0703 – I is internal; C<T> is public
{
}