【问题标题】:Defining arithmetic operations in a class在类中定义算术运算
【发布时间】:2014-11-07 22:57:45
【问题描述】:

我正在用我自己的类在 c# 中创建一个库 dll。但是,对于算术运算(+、-、*、/、...),我创建了 .Add (c1, c2) 之类的方法,其中 c1 和 c2 是我的类的对象。

这个方法很棒,但我更愿意说:c3 = c1 + c2;由于我已经为我的类编写了 Add 函数、Multiply 函数、Divide 函数等,我想定义它:

c1 = c2 + c3 同理:c1 = MyClass.Add (c2, c3);

所以如果可能的话,我会重用我的代码。我确信网络上有关于所有这些的文档和信息,但我找不到它,我搜索的任何内容,谷歌似乎误解了我的问题。

如何为类的对象定义基本算术运算?

【问题讨论】:

    标签: c# class math methods


    【解决方案1】:

    您正在寻找operator overloading。您需要重载 + 运算符来告诉编译器如何在两个对象之间执行加法运算。然后您将能够像添加两个整数一样添加两个对象。

    这是一个从msdn 重载+ 运算符的示例

    public static Complex operator +(Complex c1, Complex c2) 
    {
       return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
    }
    

    【讨论】:

    • 或者因为你已经在你提到的静态 .Add 方法中有这个代码,你可以调用它(假设你仍然想保留它):return Complex.Add(c1, c2);
    猜你喜欢
    • 1970-01-01
    • 2014-08-31
    • 2013-02-15
    • 2022-11-11
    • 2011-01-24
    • 2012-10-09
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    相关资源
    最近更新 更多