我可以在C#
中执行以下操作,真的很酷if (Divide(4, 0) != false)
{
MessageBox.Show("Cool");
}
...
public dynamic Divide(int x, int y)
{
if (y == 0) return false;
return x / y;
}
例如,上面的代码允许我轻松测试除零除异常,而不是使用try / catch。但是,如果代码实际返回有效结果,则会遇到错误,因为bool无法与整数进行比较 - 这意味着,在比较中,结果被强制成为静态类型?
有没有办法检查条件是否满足以及得到结果而不会导致错误?
感谢。
答案 0 :(得分:2)
为什么不使用double?
(可归double
作为其返回类型?如果为null,则无效。
我将使用的另一个约定是TryDivide
。返回bool
并使用out double
参数。
TryDivide
看起来像这样。
public bool TryDivide(int x, int y, out double result)
{
result = 0;
if (y == 0) return false;
result = x / y;
return true;
}