我在c#中使用一个struct来从函数中返回两个变量。我宣布新的结构“解决方案”,我现在正在尝试设置我的所有分配。但是,当我将一个可能的结果设置为结构的一个成员时,它表示我不能隐式转换类型,但它们都应该是结构成员定义的字符串。
我哪里出错了?
}
Solution quadratic (int a, int b, int c)
{
d = Convert.ToInt32(Math.Pow (b, 2)) - (4 * a * c);
if (d < 0) {
Solution fail;
fail.solution1 = fail;
fail.solution2 = fail;
return(fail);
} else{
Solution solutions;
solutions.solution1 = Convert.ToString((-1 * b + Convert.ToInt32(Math.Sqrt (d))) / (2 * a));
solutions.solution2 = Convert.ToString((-1 * b - Convert.ToInt32(Math.Sqrt (d))) / (2 * a));
return(solutions);
}
}
public struct Solution
{
public string solution1;
public string solution2;
}
}
}
更新:我做了一个愚蠢的事。我将新的“解决方案”结构命名为“失败”,这也恰好是我试图分配给它的字符串的名称。小心你的各种名字,孩子们
答案 0 :(得分:2)
你的问题在这里:
fail.solution1 = fail;
fail.solution2 = fail;
您正尝试将变量fail(类型为Solution)分配给变量fail.solution1和fail.solution2(类型为string)。
答案 1 :(得分:1)
错误隐藏在这里
Solution fail;
fail.solution1 = fail;
fail.solution2 = fail;
您正在尝试向solution1
fail
作为结构,而不是字符串。{/ p>
答案 2 :(得分:0)
您的问题是:fail
是解决方案类型,fail.solution1
/ fail.solution3
是字符串类型。试试这个:
Solution fail = new Solution();
fail.solition1 = string.empty(); // Or you value
fail.solition2 = string.empty(); // Or you value
return fail;
为什么要退回此内容:return (fail)
?为什么括号?