Existe-t-il une meilleure pratique particulière ou une autre recommandation pour signaler un paramètre de type invalide d'une méthode générique dans .NET ?
(Exemple concret : J'ai une méthode avec la signature
public static T GetRoles<T> (this WindowsIdentity id) where T: struct
Je réfléchis ensuite à T pour m'assurer qu'il s'agit (a) d'un Enum, et (b) du bon type d'Enum, puisque ce n'est pas une contrainte que je peux utiliser dans la clause where).
Pour la plupart des erreurs de paramètres, je ferais ce qui est évident et lancerais une ArgumentException avec le nom du paramètre et le message appropriés, sauf qu'un paramètre de type n'est pas un argument normal, et qu'en essayant de lancer une nouvelle ArgumentException ("oops", "T") fait que l'analyseur de code se plaint que le nom du paramètre, eh bien, n'en est pas un. Cela ne m'arrêtera pas s'il n'y a pas une meilleure façon de faire, bien sûr, mais s'il y a une pratique spécifiée ou recommandée dans ce domaine, j'aimerais savoir ce que c'est.