スポンサーリンク

C# で文字列が null または空かをチェックする最適な方法

C# で文字列の値を検証する際、「null または空文字(空白含む)かどうか」のチェックは非常によく使います。この記事では、その方法とベストプラクティス、ありがちなミスについて解説します。

よく使われる3つのチェック方法

1. string.IsNullOrEmpty

このメソッドは、null または “”(空文字)を判定できます。

string input = "";
if (string.IsNullOrEmpty(input))
{
    Console.WriteLine("null または空です。");
}

2. string.IsNullOrWhiteSpace

こちらは空白文字(スペースやタブ)のみの文字列も対象に含めたい場合に便利です。

string input = "   ";
if (string.IsNullOrWhiteSpace(input))
{
    Console.WriteLine("null または空白を含む空文字です。");
}

IsNullOrWhiteSpace は .NET Framework 4.0 以降で使用可能です。

3. input == null || input == ""

初心者がよく書きがちですが、非推奨の記述です。IsNullOrEmpty を使う方が明確で安全です。

if (input == null || input == "")
{
    // 可読性・保守性に劣る
}

実用例:ユーザー入力のバリデーション

public bool IsValidName(string name)
{
    return !string.IsNullOrWhiteSpace(name);
}

ユーザーの入力が未入力または空白だけだった場合に false を返すような処理で役立ちます。

よくあるミス

input.Trim().Length == 0 を使ってしまう

空白を除去してから長さを調べる方法もありますが、null チェックを忘れると例外になります。

// NG: input が null の場合に NullReferenceException が発生
if (input.Trim().Length == 0)
{
    Console.WriteLine("空文字です。");
}

IsNullOrWhiteSpace を使うことで、null 安全かつ読みやすく書けます。

パフォーマンスの観点では?

IsNullOrEmptyIsNullOrWhiteSpace はどちらも .NET の内部で最適化されており、ほとんどの用途で高速に動作します。わざわざ自分で null チェック + Trim を組み合わせる必要はありません。

まとめ

  • null や空文字の判定には string.IsNullOrEmpty を使う
  • 空白も対象にしたい場合は string.IsNullOrWhiteSpace を使う
  • input == null || input == "" のような冗長な書き方は避ける
  • バリデーションやユーザー入力チェックでは IsNullOrWhiteSpace が推奨

簡単なチェックですが、正しい方法で記述することで、バグを防ぎ、読みやすく保守しやすいコードになります。

.NET
スポンサーリンク
シェアする
trelab