在自定义C#类型中实现数学函数?

在自定义C#类型中实现数学函数?,c#,operator-overloading,C#,Operator Overloading,有人能告诉我需要实现的接口,以便使基本数学运算符(即+、-、*、/)在自定义类型上运行吗?您需要重载该类型上的运算符 // let user add matrices public static CustomType operator +(CustomType mat1, CustomType mat2) { } 你必须使用 您可以找到一个自定义类型的运算符重载的好例子 等等。你要找的不是界面,而是。基本上,您可以这样定义一个静态方法: public static My

有人能告诉我需要实现的接口,以便使基本数学运算符(即+、-、*、/)在自定义类型上运行吗?

您需要重载该类型上的运算符

// let user add matrices
    public static CustomType operator +(CustomType mat1, CustomType mat2)
    {
    }
你必须使用


您可以找到一个自定义类型的运算符重载的好例子


等等。你要找的不是界面,而是。基本上,您可以这样定义一个静态方法:

public static MyClass operator+(MyClass first, MyClass second)
{
    // This is where you combine first and second into a meaningful value.
}
之后,您可以将MyClass添加到一起:

MyClass first = new MyClass();
MyClass second = new MyClass();
MyClass result = first + second;

这是关于操作符的MSDN文章,并且在C.{:/P>中重写,一般来说,如果你正在执行操作符重载,你可能处理的是一个值类型,而不是一个引用类型,它需要(潜在地)是其他类型的基础CLA,所以你应该考虑使用一个结构而不是一个基础类型的类。谢谢你的建议,我忽略了。我编辑了代码。

public static T operator *(T a, T b)
{
   // TODO
}
public static MyClass operator+(MyClass first, MyClass second)
{
    // This is where you combine first and second into a meaningful value.
}
MyClass first = new MyClass();
MyClass second = new MyClass();
MyClass result = first + second;