Partager via


Prise en charge de la surcharge d'opérateur

Pour .NET Framework 3.5, le moteur de règles Windows Workflow Foundation prend désormais en charge la surcharge d'opérateur dans les règles. L'implémentation de cette prise en charge est semblable à la surcharge d'opérateur dans le .NET Framework. Autrement dit, vous pouvez surcharger les opérateurs arithmétiques (addition, soustraction, multiplication, division, Mod), relationnels (égal à, inférieur à, supérieur à, inférieur ou égal à, supérieur ou égal à) ou de bits (et, ou). Lorsque ces opérateurs sont utilisés, l'implémentation du type est appelée plutôt que l'implémentation par défaut. Pour plus d'informations sur la surcharge d'opérateur, consultez Consignes d'utilisation de la surcharge d'opérateur (page pouvant être en anglais).

Le moteur de règles WF étant basé sur CodeDom et dans la mesure où CodeDom ne prend pas en charge les opérateurs unaires, l'infrastructure de règles WF ne les prend pas non plus en charge. Cette situation est la même pour l'opérateur "! = " (différent de).

La représentation des opérateurs unaires est convertie en expressions binaires, c'est-à-dire que x est représenté par 0-x. Par conséquent, si l'opérateur binaire (-) est utilisé dans une définition de règle, l'expression –x finit par appeler la méthode de surcharge d'opérateur binaire (-).

Le moteur de règles WF n'utilise pas automatiquement la méthode CompareTo si l'objet implémente l'interface IComparable. Vous êtes toujours tenu d'appeler CompareTo directement si vous souhaitez utiliser cette fonctionnalité.

De plus, les utilisateurs sont en mesure de définir des opérateurs de conversion implicite et explicite avec leurs définitions de classe. L'infrastructure de règles WF autorise l'utilisation d'opérateurs de conversion implicite et explicite, en suivant les règles C# (comme spécifié dans la spécification C#) (page pouvant être en anglais).

NoteRemarque :

Lors de l'utilisation de .NET Framework 3.0, les conversions implicites ne sont pas prises en charge, la conversion définie par l'utilisateur n'est donc pas honorée et une méthode différente peut être appelée.

Voir aussi

Autres ressources

Modifications au niveau des règles dans le .NET Framework 3.5

Footer image

Copyright ©2007 par Microsoft Corporation. Tous droits réservés.