C#class + =运算符重载

Bon*_*nzo 3 c# oop operator-overloading

我有一个C#脚本,需要在列表中添加或删除项目.我认为使用+ =和 - =运算符会更好.

在C#中,操作符由以下内容完成:

public Foo operator +(Foo A, Foo B){
    //Some adding code;
    return C;
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试时,我只收到语法错误:

public SpriteValues operator +=(SpriteValues A){
    //Add A to this
    return this;
}
Run Code Online (Sandbox Code Playgroud)

我知道在python中它将使用:

def __iadd__(self, A):
    #Add A to this
    return self
Run Code Online (Sandbox Code Playgroud)

那么我如何在C#中做到这一点?

小智 6

这里你不能直接重载+ =但请注意注释:

Assignment operators cannot be overloaded, but +=, for example, is evaluated using +, which can be overloaded
Run Code Online (Sandbox Code Playgroud)

所以如果你只是重载+应该没问题的运算符