1

我可以在 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 无法与整数进行比较——这意味着在比较中,结果被强制变为静态类型?

有什么方法可以检查条件是否满足并在不导致错误的情况下获得结果?

谢谢。

4

1 回答 1

2

为什么不使用double?(nullabledouble作为其返回类型?如果它为 null,则它无效。

我会使用的另一个约定是TryDivide. 返回 abool并使用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;
}
于 2013-06-17T22:51:14.003 回答