プログラミングを中心に技術的な事柄を忘れないように書き残します。まとめNULL(Nothing)の扱いについてC#/VB.NETにおいて、オブジェクトの中身がNULL(Nothing)の場合、そのオブジェクトを参照すると、NullReferenceExceptionの例外が発生してしまいます。参照前にNULL判定をしてやる必要があります。C#/VB.NETには、NULLの扱いについて、便利な演算子・構文がいろいろと追加されています。NULL条件演算子(?.)、NULL合体演算子(??)、三項演算子(?)など検索しにくい演算子ですが使いこなせればかなり便利です。VB.NETでのサンプルコードを用意しました。VB.NETにはNULL合体演算子(??)が存在しません。if文での判定まず一番単純な判定方法が、if文を使うものです。NULLでない場合のみ参照を行う方法です。コードが長くなりますが誰が見てもすぐに分かるものです。If三項演算子を使うif文での判定は複数行にわたるので、コードが長くなり可読性が劣ります。そこで三項演算子を使うことで1行のコードで判定を行えます。わかりにくいのが難点でしょうか。三項演算子では、左の条件式がTrueの場合に、中央の式が評価され、Falseの場合は右の式が評価されます。文字列であるかどうかを判定できます。空文字の判定にはこれを使うほうがスマートです。IfNULL合体演算子(??)を使うNULL合体演算子(??)と呼ばれる演算子を使えば三項演算子より簡潔に判定を行えます。??演算子の左辺がNULLの場合、右辺の式で評価され、NULL以外の場合は左辺の値がそのまま使用されます。VB.NETにはNULL合体演算子(??)が存在しません。2Console.WriteLine(result);NULL条件演算子(?.)を使うstringやNULL許容型の値をそのまま使用する場合はNULL合体演算子や三項演算子を使えばいいのですが、オブジェクト自体がNULLかどうか判定した後にプロパティにアクセスするという処理を書く場合はNULL条件演算子(?.)を使えます。NULL条件演算子(?.)を使ってオブジェクトのメンバにアクセスすれば、NULLの場合はNULLを返し、そうでない場合はメンバの値を返します。このNULL条件演算子と(?.)とNULL合体演算子(??)を組み合わせてNULLの場合の処理を簡潔に書くことができます。nothingなので空NULL許容型を使う値型は通常NULL値をとることができませんが、データベースをの値などではNULLを取る数値なども考えられます。MVCではNULL許容のフィールドを定義する際、モデルのプロパティでNULL許容型を使います。これでNULLもしくは元の型の値を取る新しい方を作れます。変換は暗黙的に行なえますが、その逆はNULLの場合があるのでうまく行きません。複数のプロパティがあり、値を取り出す際に使用します。実際には上ですでに使ったようにNULL合算演算子(??)を使ったほうがすっきりします。オブジェクトに、基になる型の有効値があるかどうかを示す値を取得します。中身がNULLかどうかの判定をします。NULLの場合には例外(InvalidOperationException)が発生します。IfまとめNULL合算演算子(??)とNULL条件演算子(?.)を使うことで長くなりがちなコードを簡潔に1行で書くことができます。VB.NETではNULL合算演算子(??)がないのでIIFもしくはif文での判定を使用する必要があります。13:19こんにちは。参考になる記事、ありがとうございます。仰る通りVB.netにNULL合体演算子(??)はありませんが、三項演算同様、if関数のオーバーロードが対応しています。コメントをキャンセルメールアドレスが公開されることはありません。ワーシャルフロイドのアルゴリズムに入門する。WordPress.。