Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

C#辞典

  1. トップページ
  2. C#辞典
  3. string.IsNullOrEmpty() / string.IsNullOrWhiteSpace()

string.IsNullOrEmpty() / string.IsNullOrWhiteSpace()

文字列が null または空文字列かを判定する『string.IsNullOrEmpty()』、空白のみの文字列も検出する『string.IsNullOrWhiteSpace()』、そして null の代替値を返す『??』演算子です。

構文
// 文字列が null または "" の場合に true を返します。
string.IsNullOrEmpty(string? value)

// 文字列が null、""、またはスペース・タブなど空白のみの場合に true を返します。
string.IsNullOrWhiteSpace(string? value)

// 左辺が null の場合に右辺の値を返します(null 合体演算子)。
左辺 ?? 右辺

// 左辺が null の場合に右辺を代入します(null 合体代入演算子)。
変数 ??= 値
メソッド一覧
メンバー概要
string.IsNullOrEmpty(string? value)value が null または長さ 0 の文字列の場合に true を返します。
string.IsNullOrWhiteSpace(string? value)value が null、空文字列、または空白文字(スペース・タブ・改行)のみの場合に true を返します。
??(null 合体演算子)左辺が null でなければ左辺を、null であれば右辺を返します。
??=(null 合体代入演算子)変数が null の場合にのみ右辺を代入します。
サンプルコード
using System;

// IsNullOrEmpty() の使い方です。
string? 名前1 = null;
string? 名前2 = "";
string? 名前3 = "田中";

Console.WriteLine(string.IsNullOrEmpty(名前1)); // True
Console.WriteLine(string.IsNullOrEmpty(名前2)); // True
Console.WriteLine(string.IsNullOrEmpty(名前3)); // False

// IsNullOrWhiteSpace() はスペースのみの文字列も検出します。
string? 入力 = "   "; // スペースのみです。
Console.WriteLine(string.IsNullOrEmpty(入力));      // False(IsNullOrEmpty では検出できません)
Console.WriteLine(string.IsNullOrWhiteSpace(入力)); // True

// ?? 演算子で null の場合のデフォルト値を指定します。
string? ユーザー名 = null;
string 表示名 = ユーザー名 ?? "ゲスト";
Console.WriteLine(表示名); // ゲスト

string? 設定値 = "ダーク";
string テーマ = 設定値 ?? "ライト";
Console.WriteLine(テーマ); // ダーク(null でないのでそのまま使われます)

// ??= 演算子の例です。
string? キャッシュ = null;
キャッシュ ??= "初期値";
Console.WriteLine(キャッシュ); // 初期値
概要

フォーム入力の検証では、ユーザーがスペースだけを入力するケースも考慮が必要です。そのような場合は『IsNullOrEmpty()』よりも『IsNullOrWhiteSpace()』を優先して使うことを推奨します。

『??』演算子は null チェックの if 文をシンプルに書けるため、デフォルト値の設定によく使われます。null 許容型(string?)の詳細は C# の null 安全設計の仕様を参照してください。

型変換のユーティリティは『Convert.ToString() / Convert.ToInt32()』を参照してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。