Comment utiliser where (contrainte de type générique)

Comment Utiliser Where Contrainte De Type Generique



Les contraintes de type générique en C# permettent aux développeurs de définir l'ensemble de types qu'un paramètre de type générique peut représenter. Cette fonctionnalité permet au compilateur d'appliquer la sécurité de type et d'éviter les erreurs qui pourraient se produire pendant l'exécution. L'une des contraintes les plus utilisées est la 'où' contrainte, cet article vous expliquera ce que 'où' contrainte est en C # et comment l'utiliser dans votre code.

Qu'est-ce que la contrainte 'où'

Le 'où' La contrainte est une contrainte de type générique en C# qui permet aux développeurs de spécifier le paramètre de type qu'un type générique peut représenter. La contrainte est spécifiée à l'aide de la 'où' mot-clé suivi du paramètre type et de la contrainte, la syntaxe d'utilisation du 'où' contrainte est la suivante :

classe publique ClassName < J > où T : contrainte

{

// Implémentation de la classe

}

Ici le 'Nom du cours' représente le nom de la classe avec un paramètre de type générique 'T' . Le 'où' Le mot-clé spécifie la contrainte pour le paramètre de type, et le 'contrainte' est le type que le paramètre de type doit représenter.







Prenons un exemple de classe générique qui accepte un paramètre de type et renvoie la valeur minimale d'un tableau de valeurs. Ici, le code utilise le 'où' contrainte pour spécifier que le paramètre de type doit être un type numérique :



en utilisant le système ;

classe publique MinValue < J > où T : structure , IComparable , ICabriolet

{

public T GetMinValue ( J [ ] déployer )

{

si ( déployer == nul || déployer. Longueur == 0 ) {

lancer une nouvelle ArgumentException ( 'Le tableau ne peut pas être nul ou vide' ) ;

}

T min = déployer [ 0 ] ;

pour ( entier je = 1 ; je < déployer. Longueur ; je ++ ) {

si ( déployer [ je ] . Comparer aux ( min ) < 0 ) {

min = déployer [ je ] ;

}

}

retour min ;

}

}

Programme de classe publique

{

public statique annuler Principal ( )

{

entier [ ] intTableau = { 1 , 2 , 3 , 4 , 5 } ;

ValeurMin < entier > intMinValue = nouvelle valeur minimale < entier > ( ) ;

entier intMin = intMinValue. GetMinValue ( intTableau ) ;

Console. WriteLine ( 'Valeur minimale de intArray : {0}' , intMin ) ;

double [ ] tableaudouble = { 1.1 , 2.2 , 3.3 , 4.4 , 5.5 } ;

ValeurMin < double > doubleMinValue = nouvelle valeur minimale < double > ( ) ;

double doubleMin = doubleMinValue. GetMinValue ( tableaudouble ) ;

Console. WriteLine ( 'Valeur minimale de doubleArray : {0}' , doubleMin ) ;

}

}

Ici, nous avons défini une classe générique 'Valeur minimale' qui accepte un paramètre de type 'T' et renvoie la valeur minimale d'un tableau de valeurs. Ensuite, nous avons utilisé le 'où' contrainte pour spécifier que le paramètre de type doit être une structure, implémenter l'interface IComparable et implémenter l'interface IConvertible. Cette contrainte garantit que seuls les types numériques sont autorisés en tant que paramètres de type.



  Forme, rectangle Description générée automatiquement





Conclusion

Le 'où' La contrainte en C# est une fonctionnalité puissante qui permet aux développeurs d'appliquer la sécurité des types et d'éviter les erreurs lors de l'exécution. En utilisant cette contrainte, vous pouvez spécifier l'ensemble de types qu'un paramètre de type générique peut représenter. Cet article a donné un aperçu de la 'où' contrainte en C# et montré comment l'utiliser avec un code.