C#のIsNullOrWhiteSpace()メソッドとは?null・空文字・空白文字列を判定する方法を解説
C#のIsNullOrWhiteSpace()メソッドは、指定された文字列がnullであるか、空文字(String.Empty)であるか、あるいは空白文字(スペース、タブ、改行など)のみで構成されているかどうかを判定するためのメソッドです。戻り値としてbool型(true / false)を返します。
構文
public static bool IsNullOrWhiteSpace (string val);
引数 val には、判定対象となる文字列を指定します。このメソッドは静的(static)メソッドのため、String.IsNullOrWhiteSpace() の形式で直接呼び出すことができます。
使用例1:nullと空文字の場合
まず、null と空文字(String.Empty)を判定する基本的な例を見てみましょう。
using System;
public class Demo {
public static void Main() {
string str1 = null;
string str2 = String.Empty;
Console.WriteLine("Is string1 null or whitespace? = "+String.IsNullOrWhiteSpace(str1));
Console.WriteLine("Is string2 null or whitespace? = "+String.IsNullOrWhiteSpace(str2));
}
}出力結果
Is string1 null or whitespace? = True Is string2 null or whitespace? = True
null も空文字もどちらも「空白」とみなされるため、両方とも True が返されています。
使用例2:改行文字と通常の文字列の場合
次に、空白文字のみの文字列と、実際に内容のある文字列を判定した場合の例です。
using System;
public class Demo {
public static void Main() {
string str1 = "\n";
string str2 = "Tim";
Console.WriteLine("Is string1 null or whitespace? = "+String.IsNullOrWhiteSpace(str1));
Console.WriteLine("Is string2 null or whitespace? = "+String.IsNullOrWhiteSpace(str2));
}
}出力結果
Is string1 null or whitespace? = True Is string2 null or whitespace? = False
改行文字「\n」だけの文字列は空白文字のみで構成されているため True となり、「Tim」のように実質的な内容を持つ文字列は False となります。
まとめ
IsNullOrWhiteSpace()メソッドを使うことで、nullチェック・空文字チェック・空白文字チェックを1回の呼び出しでまとめて行えます。ユーザー入力のバリデーションなど、文字列が実質的に「空」かどうかを確認したい場面で非常に便利なメソッドです。
-
C++でNULLクラスポインタ経由でクラスメソッドを呼び出す方法
はじめにC++では、NULLクラスポインタを介してクラスのメンバ関数(メソッド)を呼び出すことができます。一見奇妙な動作に思えますが、特定の条件下ではコンパイル・実行ともに可能です。注意: これは未定義動作(undefined behavior)であり、プログラムの正常な実行は一切保証されません。実際の結果は、使用するコンパイラや環境によって異なります。実務のコードでは絶対に避けるべき書き方ですので、ここではC++の内部的な仕組みを理解するための参考として読んでください。サンプルプログラムNULLポインタ経由でメンバ関数を呼び出すプログラムの例を以下に示します。#include <ios
-
C#のジェネリックメソッドからnullを返す方法:default(T)の使い方
ジェネリック(Generics)を使うと、フィールド、メソッド、パラメータなどの型をプレースホルダー(型パラメータ)として持つクラスを定義できます。これらのプレースホルダーは、コンパイル時に具体的な型へと置き換えられます。ジェネリックは山括弧 <> を使って定義するのが基本です。C#のコレクションにおける主な制限の一つは、効果的な型チェックが行えないことです。C#ではすべてのクラスがobject基底クラスから派生しているため、コレクションには原理的にどんなオブジェクトでも格納できてしまいます。さらに、通常のメソッドとは異なり、ジェネリックメソッドから単純にnullを返すことはできま