Existe-t-il un moyen de forcer le compilateur C# à ignorer les surcharges d'opérateurs manquantes pour les objets, et à gérer à la place cette vérification en cours d'exécution? Je demande parce que j'ai un conteneur qui a plusieurs objets qui a divers attributs de type int, string, ushort et ainsi de suite. Je fais une fonction de recherche pour ce conteneur, et j'aimerais pouvoir effectuer des recherches dans différents domaines. J'utilise des prédicats et des expressions lambda (0).Comment faire pour que les objets "supposent" qu'ils ont été surchargés pour l'opérateur X?
C'est ce que je veux:
var data = container.Retrieve(ID => (ID == 5), Date => (Date > somedate));
en supposant ID et la date sont les champs dans les objets
du conteneur C'est ce que je dois faire aujourd'hui (Il fonctionne, cependant):
var data = container.Retrieve(ID => ((int)ID == 5), Date => ((DateTime)Date > somedate));
Ce casting supplémentaire n'est pas très beau par rapport au premier exemple, je ne voudrais pas avoir à le faire. Je voudrais avoir la possibilité de vérifier cela à l'exécution à la place.
Y a-t-il un moyen d'accomplir cela?
D'accord, je vais vivre avec mes moulages. Bravo pour la réponse rapide. :) – Hallgeir
@Hallgeir: Si vous utilisez vos propres objets, ou si vous pouvez en dériver, vous pouvez utiliser la surcharge de l'opérateur de cast implicite. Je ne sais pas si cela peut être appliqué à votre situation. – Abel