nullチェックと var isEmptyの使い方
目次
1. 今回のコード
var isEmpty = null == _ownedItem;
この1行はシンプルに見えますが、実務で重要な考え方が詰まっています。
2. このコードがやっていること
まずは分解して理解します。
bool isEmpty = (null == _ownedItem);
つまり:
_ownedItem が null かどうかを調べる- 結果(true / false)を
isEmptyという変数に入れている
3. varの意味
var isEmpty = null == _ownedItem;
var は
右側から型を自動で決める
という意味です。
今回の場合:
null == _ownedItem → true / false
なので、
bool isEmpty
になります。
4. なぜ変数に入れるのか?
■ 直接書く場合
if (_ownedItem == null)
{
Debug.Log("空です");
}
■ 変数に入れる場合
var isEmpty = _ownedItem == null;
if (isEmpty)
{
Debug.Log("空です");
}
5. 変数にするメリット
① 意味がわかりやすくなる
var isEmpty = _ownedItem == null;
→ 「空かどうか」という意味が名前で伝わる
② 同じ条件を何度も書かなくてよい
var isEmpty = _ownedItem == null;
if (isEmpty)
{
Debug.Log("空です");
}
if (!isEmpty)
{
Debug.Log("データあり");
}
③ 条件が複雑でも読みやすい
var isEmpty = _ownedItem == null || _ownedItem.Count == 0;
if (isEmpty)
→ 読む側が楽になる
6. null == _ownedItemという書き方について
普通はこう書きます:
_ownedItem == null
ですが、次の書き方もあります:
null == _ownedItem
なぜこんな書き方があるのか?
昔の言語(C言語など)では、
if (_ownedItem = null) // ← ミス(代入)
が通ってしまうため、
if (null == _ownedItem)
と書くことでミス防止をしていました。
C#ではどうか?
C#ではこのミスはコンパイルエラーになるので、
👉 どちらでもOK
7. Unityでの注意点
Unityでは特殊なnullがあります。
Destroy(obj);
したあと:
if (obj == null)
→ trueになる(見た目null)
そのため
var isEmpty = obj == null;
のように書くことで
- 本当にnull
- Destroyされたオブジェクト
両方をまとめて扱えます。
8. 実務でのおすすめ書き方
■ 基本形
var isEmpty = _ownedItem == null;
■ 複合条件
var isEmpty = _ownedItem == null || _ownedItem.Count == 0;
9. よくない例
if (_ownedItem == null || _ownedItem.Count == 0 || _ownedItem.Name == "")
→ 長くて読みにくい
改善
var isEmpty = _ownedItem == null || _ownedItem.Count == 0;
if (isEmpty)
{
// 処理
}
10. 重要な考え方
この資料で一番大事なのはここです。
■ 条件に名前をつける
var isEmpty = _ownedItem == null;
これは
👉 「判定」ではなく
👉 「意味」を作っている
11. まとめ
varは型を自動で決めるnullチェックの結果は bool- 条件は変数にすると読みやすくなる
null == 変数は書き方の違いだけ- Unityでは null の扱いに注意
12. 演習
① 次を変数にしてください
if (player == null)
② 次を読みやすくしてください
if (hp <= 0 || isDead == true)
③ 次に名前をつけてください
enemyList.Count == 0
訪問数 10 回, 今日の訪問数 10回



ディスカッション
コメント一覧
まだ、コメントがありません