1. ホーム
  2. c#

[解決済み] Nullable型:C#でNullまたは0をチェックするためのより良い方法

2023-02-07 03:48:56

質問

あるプロジェクトで、以下のようなチェックをしていることに気がつきました。

if(item.Rate == 0 || item.Rate == null) { }

この2つのケースを確認する最善の方法は何でしょうか?

私は、ヘルパーメソッドを追加しました。

public static bool nz(object obj)
{
    var parsedInt = 0;
    var parsed = int.TryParse(obj.ToString(), out parsedInt);
    return IsNull(obj) || (parsed && parsedInt == 0);
}

もっと良い方法はないのでしょうか?

どのように解決するのですか?

私は if ((item.Rate ?? 0) == 0) { }

アップデート 1:

のような拡張メソッドを定義することもできます。

public static bool IsNullOrValue(this double? value, double valueToCheck)
{
    return (value??valueToCheck) == valueToCheck;
}

そして、このように使う。

if(item.IsNullOrValue(0)){} // しかし、これではあまり意味がありません。