Contraintes
Contexte : Les contraintes restreignent les types qui peuvent être utilisés comme arguments de type générique. Elles permettent d’accéder à des membres spécifiques (constructeurs, méthodes, propriétés) du paramètre de type. La clause where est utilisée pour déclarer des contraintes.
Exemple d’utilisation
Section intitulée « Exemple d’utilisation »using System;
// Plusieurs contraintes illustrées dans une classepublic class ContrainteDemo<T> where T : class, new(){ public T CreerInstance() { return new T(); // new() permet d'utiliser le constructeur par défaut }}
class Program{ static void Main() { var demo = new ContrainteDemo<ContrainteDemo<object>>(); var instance = demo.CreerInstance(); Console.WriteLine(instance != null); }}Sortie console
Section intitulée « Sortie console »dotnet runTrueRemarques importantes
Section intitulée « Remarques importantes »- Les contraintes sont optionnelles mais puissantes.
- On peut appliquer des contraintes à la classe ou à la méthode.
- Plusieurs contraintes sont séparées par des virgules.
Exemple d’utilisation dans le monde réel
Section intitulée « Exemple d’utilisation dans le monde réel »Dictionary<TKey, TValue> – TKey ne peut pas être null (contrainte implicite).
Voir documentation .NET sur les contraintes.