「Null」と「空白」の違いって最初は混乱しますよね。。。
具体例を出しながら、なるべくわかりやすく説明します!
Nullとは
「Null」とは、何もない、つまり「存在しない」ことを示す特別な値です。
例えば、String型の変数に値が設定されていない場合、その値はNullになります。
「str」変数を宣言し、既定値を設定せず、メッセージボックスに「Length」メソッドで文字数を表示させようとします。
実行すると以下のようにエラーになります。
何もない変数の文字数は表示できないので、「Length」メソッドが失敗しました。
Nullに対してメソッドを呼び出しすると、System.NullReferenceExceptionが発生します。
メソッドを利用する時は、必ず変数に値が入っている必要があります。
空白とは
「空白」とは、何か存在はするものの、その中身が空っぽであることを示します。
例えば、String型の変数に“”(空の文字列)が設定されている場合、その変数は空白となります。
「str」変数を宣言し、既定値に“”(空の文字列)を設定し、メッセージボックスに「Length」メソッドで文字数を表示させようとします。
実行すると以下のように文字数が表示されます。
Nullとは違い、“”(空の文字列)は値と認識されるため、メソッドが利用できます。
値は入っているけど、文字は設定されていないので、文字数は0文字となります。