它出現在C#中,您不能重寫後減量運算符?在c中重載++和 - 運算符#
我是「反射式」,碰到一些代碼反射器翻譯爲decimal.op_Decrement(x)
,我試圖弄清楚這是否意味着--x
或x--
。
public struct IntWrapper
{
public static IntWrapper operator --(IntWrapper value)
{
return new IntWrapper(value.value - 1);
}
public static IntWrapper operator (IntWrapper value)--
{
???
}
private int value;
public IntWrapper(int value)
{
this.value = value;
}
}
該框架是否使用「pre-decrement」版本的「後減」操作?
+1清晰,簡單,很好的解釋,很好! – Abel
雖然此解釋清楚地表達了postfix遞減的一般概念,但它與EricLippert對前綴&後綴運算符的詳細解釋不一致(請參閱http://stackoverflow.com/a/3346729/1245420)。如果可以相信Eric,則調用Function(oldValueOf_y)** ** AFTER **時,稱爲「y」的變量遞減。傳遞給'Function()'的函數是遞減前的'y'的一個副本。因此,在C#中,就像在C++中一樣,後綴增量/減量的語義可以防止編譯器可以使用前綴增量/減量進行明顯的優化。 – phonetagger