Il apparaît dans C# vous ne pouvez pas remplacer l'opérateur post-décrémentation?Surcharge des opérateurs ++ et - dans C#
J'étais "reflectoring" et couru à travers un certain code ce réflecteur traduit à decimal.op_Decrement(x)
et j'essayais de comprendre si cela signifiait --x
ou x--
. Le framework utilise-t-il simplement la version "pré-décrément" pour l'opération "post-décrémentation"?
+1 Clair, simple et bien expliqué, sympa! – Abel
Bien que cette explication exprime clairement le concept général de décrémentation postfixe, elle est en contradiction avec l'explication détaillée d'EricLippert des opérateurs de préfixe et de postfix (voir http://stackoverflow.com/a/3346729/1245420). Si l'on en croit Eric, 'Function (oldValueOf_y)' est appelé ** APRES ** la variable connue sous le nom de 'y' est décrémentée. Ce qui est passé à 'Function()' est une copie de 'y' avant d'être décrémentée. Ainsi, il semblerait qu'en C#, tout comme en C++, la sémantique de l'incrément/décrément postfixe empêche les optimisations évidentes que le compilateur peut faire avec le préfixe incrément/décrément. – phonetagger