0

我只使用整数并想创建一个新的分数实例。我收到“无法隐式转换类型。'Fractions.Fraction' 到 'int'”的错误。问题与在此特定方法中创建新实例有关。我需要将方法中的所有三个值都返回给类。

我已经使用调试器逐步完成了代码,并验证了值是否正确更改。我只是无法让他们正确返回。错误出现在 reduce 方法的最后一行。对 C# 来说还是有些新意,如果有任何建议,将不胜感激。

public static int Reduce(int wholeNum, int numer, int denomi)
{
    int reduceWhole = (int)wholeNum;
    while(numer > denomi)
    {
        numer -= denomi;
        reduceWhole += 1;
    }
    while (denomi % numer == 0)
    {
        int factor =  (int)denomi/numer;
        numer = 1;
        denomi = factor;
    }
    return new Fraction(reduceWhole, numer, denomi);

}
4

2 回答 2

3

然后只需将方法的签名更改为 returnFraction而不是int

public static Fraction Reduce(int wholeNum, int numer, int denomi)
{
    // ....
    return new Fraction(reduceWhole, numer, denomi);
}
于 2012-06-18T21:59:04.937 回答
1

您的方法Reduce声称返回 type 的值int,但您的返回行返回的 type 为Fraction。您需要将代码的第一行从更改intFraction

public static Fraction Reduce(int wholeNum, int numer, int denomi)
{
    int reduceWhole = (int)wholeNum;
    while(numer > denomi)
    {
        numer -= denomi;
        reduceWhole += 1;
    }
    while (denomi % numer == 0)
    {
        int factor =  (int)denomi/numer;
        numer = 1;
        denomi = factor;
    }
    return new Fraction(reduceWhole, numer, denomi);

}
于 2012-06-18T21:59:47.880 回答