J'essaie d'écrire une méthode d'extension sur les types numériques à utiliser dans un cadre de test fluide que je suis en train de construire. En gros, je veux faire ceci :
public static ShouldBeGreaterThan<T>(this T actual, T expected, string message)
where T : int || T: double || etc...
Juste where T : struct
ne fait pas l'affaire, puisque cela correspond aussi à string
y bool
et peut-être quelque chose d'autre que j'oublie. Y a-t-il quelque chose que je puisse faire pour ne faire correspondre que les types numériques ? (Plus précisément, les types qui implémentent la fonction >
y <
opérateurs, pour que je puisse les comparer... Si cela signifie que je compare aussi les dates, cela n'a pas vraiment d'importance - l'extension fera toujours ce que j'attends).
6 votes
Jon Skeet et Mark Gravell ont mis en place des cours intéressants à cet effet : yoda.arachsys.com/csharp/genericoperators.html
12 votes
@Dan en fait c'est "Marc", mais je vous laisse tranquille - très peu de gens le font correctement ;p
4 votes
Ce lien est mort. utilisez ceci à la place jonskeet.uk/csharp/miscutil jonskeet.uk/csharp/genericoperators.html