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 を使用する代わりに、0 による除算の例外を簡単にテストできます。ただし、コードが実際に有効な結果を返す場合、bool は整数と比較できないため、エラーが発生します。つまり、比較では、結果が強制的に静的な型になるのでしょうか?

条件が満たされているかどうかを確認し、エラーを発生させずに結果を取得する方法はありますか?

ありがとう。

4

1 に答える 1

2

double?戻り値の型として(nullableを使用しないのはなぜdoubleですか? null の場合、有効ではありません。

私が使用する別の規則はTryDivide. a を返し、パラメーター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;
}
于 2013-06-17T22:51:14.003 に答える