【C#】String.Emptyフィールドとnull、空文字列(””)の違い(String.IsNullOrEmptyメソッドの使い方)

String.Emptyフィールドとは

String.Emptyフィールドとは、空の文字列を表します。

String.Emptyフィールドは読み取り専用です。

 

nullとは

nullとは、値が無効であることを指します。

 

空文字列とは

名前の通り文字列ではあるものの、1文字もない空の状態を指します。

 

String.Emptyフィールドとnull、空文字列(””)の違い

上記をふまえて3つの違いを確認していきます。

 

ソースコード

using System;

namespace MyPracticeApp
{
    class Program
    {
        static void Main(string[] args)
        {
            // null
            string a = null;
            // string.Empty
            string b = string.Empty;

            // 空文字列
            string c = "";

            // nullとstring.Emptyが同じかどうか判定
            if (a == b)
            {
                Console.WriteLine("nullとstring.Emptyは同じです。");
            }

            // nullと空文字列が同じかどうか判定   
            if (a == c)
            {
                Console.WriteLine("nullと空文字は同じです。");
            }
            // string.Emptyと空文字列が同じかどうか判定
            if (b == c)
            {
                Console.WriteLine("string.Emptyと空文字は同じです。");
            }
        }
    }
}

実行結果:
string.Emptyと空文字列は同じです。

上記から、string.Emptyと空文字列が同じであることがわかります。

 

nullとstring.Empty(空文字列)の判定方法

C#には、nullとstring.Empty(空文字列)を簡単に判定できるメソッドがあります。

 

String.IsNullOrEmptyメソッド

指定された文字列がnullまたは空の文字列(””)であるかどうかを示します。

文字列がnullかどうかを判定し、nullでない場合には、空の文字列かどうかを判定します。

nullか空文字列どちらかに当てはまる場合に「True」を返します。

using System;

namespace MyPracticeApp
{
    class Program
    {
        static void Main(string[] args)
        {
            string a = null;

            string b = string.Empty;

            string c = "";

            // nullを判定
            if (string.IsNullOrEmpty(a))
            {
                Console.WriteLine("True");
            }

            // string.Emptyを判定
            if (string.IsNullOrEmpty(b))
            {
                Console.WriteLine("True");
            }
            // 空文字列を判定
            if (string.IsNullOrEmpty(c))
            {
                Console.WriteLine("True");
            }
        }
    }
}

実行結果:
True
True
True

上記のように、String.IsNullOrEmptyメソッドを使用することにより、指定された文字列がnullまたは空の文字列(””)であるかどうかを判定することができます。

 

String.IsNullOrWhiteSpaceメソッドもある

C#には、IsNullOrEmptyの他にもString.IsNullOrWhiteSpaceメソッドがあります。

String.IsNullOrWhiteSpaceメソッドは、指定された文字列が「null」または空であるか、空白文字だけで構成されているかどうかを判定します

詳しくは、以下の記事を参考ください。

【C#】String.IsNullOrWhiteSpaceメソッドとは

2021.05.30

 

IsNullOrEmptyとIsNullOrWhiteSpaceの違い

詳しくは、以下の記事を参考ください。

【C#】String.IsNullOrEmptyメソッド vs String.IsNullOrWhiteSpaceメソッド(IsNullOrEmptyとIsNullOrWhiteSpaceの違い)

2021.05.30

 

参考

■公式ドキュメント
https://docs.microsoft.com/ja-jp/dotnet/api/system.string.empty?view=net-5.0

https://docs.microsoft.com/ja-jp/dotnet/api/system.string.isnullorempty?view=net-5.0

 

おすすめ書籍・Udemy

■C#を学習し始めた方向け
やさしいC 第3版 (「やさしい」シリーズ)

1週間でCの基礎が学べる本

確かな力が身につくC「超」入門 第2版 (Informatics&IDEA)

■C#をある程度学習した方向け
基礎からしっかり学ぶCの教科書 改訂新版 (マイクロソフト関連書)

独習C 新版

Effective C 6.0/7.0

 

■Udemyのおすすめ講座①
C#初心者が最初に身に着けるべき30の文法

■Udemyのおすすめ講座②
初心者でも最速でシゴトに使えるC#!