如何在 C# 中为 类 创建自定义添加方法

How to make a custom add method for classes in C#

在 python 中,如果你有一个 class foo,你可以像这样为它创建一个自定义添加函数:

class foo:
    def __add__(self, other):
        return stuff

这让您可以执行以下操作:

a = foo()
b = foo()
c = a + b

C# 中的等价物是什么?

此功能称为运算符重载。

您可以在这里阅读:https://msdn.microsoft.com/en-us/library/aa288467%28v=vs.71%29.aspx

简短示例:

class Foo
{
    private int v;

    public Foo(int val)
    {
        v = val;
    }

    public static Foo operator +(Foo x1, Foo x2)
    {
        return new Foo(x1.v+ x2.v);
    }
}

static void Main(string[] args)
{
    Foo d1 =  new Foo (10);
    Foo d2 = new Foo(11);
    d2 += d1;
}

您可以实施 operator,例如:

public class Foo
{
   public static Foo operator +(Foo f1, Foo f2) 
   {
      var foo = // some logic to generate a result
      return foo;
   }
}

然后你可以尝试使用这个运算符:

var a = new Foo() { /* properties initialization */ };
var b = new Foo() { /* properties initialization */ };

var c = a + b;

您可以实现更多运算符,例如 -*\|&,就像上面的示例一样。

查看更多 https://msdn.microsoft.com/en-us/library/aa288467(v=vs.71).aspx

您可以重载运算符 +

public static MyClass operator +(MyClass m1, MyClass m2) 
{
    // logic goes here
}

您要找的是"Operator Overloading"。请看看这个教程:

Operator Overloading Tutorial

这教你如何使用正确的语法为 class foo.

的对象编写 + 运算符的特定功能