是否存在直接测试对象数据的“通用”方法?

时间:2013-06-17 22:49:31

标签: c#-4.0 dynamic

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

有没有办法检查条件是否满足以及得到结果而不会导致错误?

感谢。

1 个答案:

答案 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;
}