2

我尝试使用两个不同的构造函数在 C# 中创建类 Complex number,第一个构造函数采用实部和虚部,第二个构造函数采用模块和参数。

public class Complex
{
    public Complex() { }

    private Complex(double _re, double _im)
    {
        re = _re;
        im = _im;
    }

    public static double Complex_FromCartesian(double _re, double _im)
    {
        return new Complex(_re, _im);
    }

    public static double Complex_FromPolar(double _mod, double _arg)
    {
        var _re = _mod * Math.Cos(_arg);
        var _im = _mod * Math.Sin(_arg);
        return new Complex(_re, _im);
    }

    public static Complex operator +(Complex num1, Complex num2)
    {
        return new Complex(num1.re + num2.re, num2.im + num2.im);
    }

    public static Complex operator -(Complex num1, Complex num2)
    {
        return new Complex(num1.re - num2.re, num2.im - num2.im);
    }

    public double Re { get; set; }
    public double Im { get; set; }

    private double re, im;
}

}

但是我在两个构造函数中都遇到了相同的错误
在此处输入图像描述
如何解决?

4

5 回答 5

9

您的方法返回 adouble但您试图返回一个Complex类型

改变:

public static double Complex_FromCartesian(double _re, double _im)
{
    return new Complex(_re, _im);
}

至:

public static Complex Complex_FromCartesian(double _re, double _im)
{
    return new Complex(_re, _im);
}
于 2013-07-04T08:53:52.160 回答
6

将该方法的返回类型更改为Complex.

于 2013-07-04T08:52:46.030 回答
5

Complex预期双倍时您无法返回。

public static Complex Complex_FromCartesian(double _re, double _im)
{
   return new Complex(_re, _im);
}
于 2013-07-04T08:52:52.803 回答
3

你的构造函数很好。问题是您指定了返回类型为 double 并且返回的是“Complex”类型的类。

于 2013-07-04T08:54:09.193 回答
2

当数据类型不匹配时会发生此错误。它期待“复杂”数据类型,您告诉它是双重的。将双数改为复数

于 2013-07-04T09:26:28.720 回答