1. ホーム
  2. c#

ToString() の前に null をチェックする

2023-09-30 08:54:22

質問

シナリオはこうだ...

if (entry.Properties["something"].Value != null)
  attribs.something = entry.Properties["something"].Value.ToString();

効果的で正しく動作している一方で、私にはこれが醜く見えます。 ToString()を実行する前にNULLをチェックしない場合、プロパティがNULLだった場合、例外がスローされます。 このシナリオを処理するためのより良い方法はありますか?

とても感謝しています!

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

8年後のアップデート(すごい!)でカバーする c# 6 の null-条件演算子 :

var value = maybeNull?.ToString() ?? String.Empty;

その他のアプローチ

object defaultValue = "default";
attribs.something = (entry.Properties["something"].Value ?? defaultValue).ToString()

また、これはひどく賢いわけではないが、便利なので使っている。

public static string ToSafeString(this object obj)
{
    return (obj ?? string.Empty).ToString();
}