pourquoi C # n’autorise pas la surcharge de l’opérateur?

pourquoi c # n’autorise pas la surcharge d’opérateur alors que C ++ le fait?

J’ai eu cette erreur, en essayant de surcharger.

Opérateur binary surchargeable attendu

Mon exemple de code ressemble à,

public static MyClass operator +=(MyClass obj1, MyClass obj2) { ... } 

    Vous pouvez surcharger les opérateurs en C #:

    • Tutoriel MSDN

    Avant de décider d’utiliser la surcharge de l’opérateur, veuillez lire au moins les points suivants:

    • Critiques de la surcharge de l’opérateur

    EDIT en réponse au assembly de l’op:

    Le += est un opérateur non surchargeable. Cependant, il se résout en + , et + est surchargeable. Regardez ici pour quels opérateurs vous pouvez et ne pouvez pas surcharger.

    Opérateurs pouvant être surchargés:

    + , - ! , ~ , ++ , -- , true , false

    + , - , * , / , % , & , | , ^ , << , >>

    == != , < , > , <= , >= (Les opérateurs de comparaison peuvent être surchargés mais voir la note dans le lien)

    Surcharge de l’opérateur, C # permet. (Version Yoda)

    Cela permet la surcharge de l’opérateur.

    Cela dit, il est généralement recommandé de ne pas remplacer les opérateurs car cela change la sémantique de votre code et le rend donc moins facile à gérer par d’autres.

    c # permet la surcharge de l’opérateur. Tutoriel MSDN ici .

    Vous pouvez surcharger les opérateurs en C #. Tutoriel sur la surcharge de l’opérateur