nullをご存知でしょうか?
・聞いたことあるけどよくわからない
・使う必要があるのか?
このような方のためにnullについて詳しく解説します。
本記事の内容
- nullの概念を知ることができる
- nullの許容型
- nullの扱う上での注意点
nullとは何か?
nullとは
何も存在していないもの
です。
空文字や0とは全く意味が違います。
nullはすべての型で使うことができるもの
つまりすべての型のデフォルトの初期値
でもあります。
null許容型
nullは普通に代入しようとするとエラーとなります。
nullを代入しようとすると以下のようにエラーとなります。

ですが、「どうしてもここでnullを入れたい!」という方のためにnull許容型というものが存在します。
その名の通り、
というものです。
宣言方法は型の後に?をつけるだけです。
int? a = null;
これでnullを代入することができます。
nullの活用例
nullを活用する場合は以下のようなコードを書くといいです。
static void Main(string[] args)
{
int? a = null;
int b = a ?? 0;
Console.WriteLine(b);
}
注目をして欲しいのは、
int b = a ?? 0;
です。
これはどう意味なのかというと、
aの値がnullなら0にしてnullでなければaの値を入れる
という処理です。
この処理を入れることでnullでプログラムが不具合を起こすことはなくなります。
nullの応用編
nullの使いかたで少し高度なテクニックを紹介します。
以下のコードをご覧ください。
List<int> intList = new List<int>() { 1, 2, 3 };
int? test = intList?.Count;
Console.WriteLine(test);
このようにListがnullならnullを、中身があるならその中身の要素数を変数に入れるという処理ができます。
結果が以下です。

配列やListは代入忘れなどで気づかずにnullとなっている場合があるので、このようにコーディングをしておけばnullでプログラムがバグを起こすこともありません。
nullの注意点
ここまでnullを説明してきましたが、
あまり多用するのはおすすめしない!
です。
なぜかといいますと、やはりnullはどうしてもプログラムのバグの原因となってしまいます。
nullを多用しすぎるとメンテナンスが大変ですのでくれぐれもほどほどにしてください。
まとめ【初心者向けC#でnullを解説】
本記事のまとめ
- nullは危険だが使い方を間違えなければ大丈夫
- すべてのデフォルト初期値はnullなので気を付ける
- null許容型を使いうまくnullを扱う
nullを知るということはそれだけ
バグが起こりにくいプログラムを作れる!
ということなのでnullについて本記事で理解していただけたらと思います。
私(@detectivepgmer)は【初心者向け】の記事を書いていますのでこれからも参考にしていただけるとありがたいです。
最後まで読んでいただきありがとうございました。
コメント