在C#中重载复合赋值运算符的简单方法?有没有人有一个非常简单的例子来说明如何在C#中重载复合赋值运算符?您不能显式重载复合赋值运算符。但是,您可以重载主运算符,编译器将扩??展它。对于x=x+1,x+=1纯粹是语法糖,这是它将被翻译成的语法。如果重载+运算符,它将被调用。MSDN运算符重载教程publicstaticComplexoperator+(Complexc1,Complexc2){returnnewComplex(c1.real+c2.real,c1.imaginary+c2.imaginary);}根据C#规范,+=不再是可重载的运算符列表。我假设,这是因为它也是一个赋值运算符,不允许它被重载。但是,与此处其他答案中所述不同,“x+=1”与“x=x+1”不同。C#规范“7.17.2复合赋值”非常清楚:...操作被评估为x=xopy,除了x仅被评估一次最重要的部分是最后一个:x仅被评估一次.所以在这种情况下:A[B()]=A[B()]+1;它可以(并且确实)会改变你的陈述是如何制定的。但我认为,在大多数情况下,差异可以忽略不计。(尽管我只是遇到了一个,但事实并非如此。)因此,问题的答案是:不能覆盖+=运算符。对于通过简单的二元运算符实现意图的情况,可以覆盖+运算符并实现类似的目标。您不能在C#中重载这些运算符。以上就是C#学习教程:在C#中重载复合赋值运算符的简单方法?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
