C#でNullを判定できる??演算子(NVL的なもの)
ASP.NET MVCのテンプレートが生成したコードに、
public AccountController(IFormsAuthentication formsAuth, IMembershipService service) { FormsAuth = formsAuth ?? new FormsAuthenticationService(); MembershipService = service ?? new AccountMembershipService(); }
というコードがありました。
- formsAuthがNullだったら、FormsAuthenticationServiceをNewしてFormsAuthに代入
- formsAuthがNullではなかったら、formsAuthをそのままFormsAuthに代入
という動きになります。OracleのNVL関数、T-SQLのISNULL関数みたいなものです。VBには対応する演算子はありません。
これまで、3項演算子(条件 ? TRUEの時の値 : FALSEの時の値)を使うことが多かったのですが、Null判定(x == nullやx.HasValue)は??演算子(null合体演算子)を使ったほうがシンプルかと思いました。