class Character { private Status status; public Status Status { get { if (status == null) { status = new Status(); } return status; } } }
必要となった時に初めてインスタンスを作る場合
if文でnullチェックを行うと上記の書き方になりますが
C#であればnull合体演算子を使用することで
下記のように書くことができます
class Character { private Status status; public Status Status { get { return status ?? (status = new Status()); } } }
1行でスッキリ収まります
null合体演算子の右辺の代入は
括弧で囲まないと優先順位の関係でエラーになるので注意が必要です