我只使用整数并且想要创建一个新的Fraction实例。我收到错误,我“无法隐式转换类型。'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);
}
答案 0 :(得分:3)
然后只需更改方法的签名即可返回Fraction
而不是int
:
public static Fraction Reduce(int wholeNum, int numer, int denomi)
{
// ....
return new Fraction(reduceWhole, numer, denomi);
}
答案 1 :(得分:1)
您的方法Reduce
声明返回int
类型的值,但您的返回行返回的类型为Fraction
。您需要将代码的第一行从int
更改为Fraction
:
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);
}