C#で、Null条件演算子を利用した変数を扱う際に、警告メッセージ[null 参照の可能性があるものの逆参照です]が表示される場合の対処法について備忘録的に投稿します。
Null条件演算子を利用した変数の参照
例えば、こんな感じ。変数の後ろに “?”(Null条件演算子) を追加して宣言した場合に、コード内で変数を参照した場合に警告表示がされます。
要するに、コードに到達した際に変数がNULLの場合があると事前に確認してくれています。
詳しい内容に興味のある方は公式ページの「null 許容の警告を解決する」をご覧ください。
例えば、変数を次のように宣言します。
private System.Drawing.Image[]? imageList;
“?”(Null条件演算子) を追加しなくても問題ありませんが、変数がnullの場合を想定しておくことで不用意なエラーを避けることができます。
そのまま変数の値を代入など参照しようとするとコンパイラーが警告を表示してくれます。
公式ページの解説通りに、参照する前に条件分岐を行います。
if (imageList is not null)
{
mainImage.Image = imageList[0];
}
else
{
//変数がNULLの場合の処理
}
これで警告表示が無くなります。
まとめ
C#で、Null条件演算子を設定した変数を参照する際に、警告メッセージ「null 参照の可能性があるものの逆参照です」が表示されて、コードに波線が追加されるのは、参照時にNULLで無いことを確認するコードが無いことが原因です。
変数を参照する前にif文などで “is not null” で確認後に変数を参照することでコンパイラーの警告を回避することができます。
警告メッセージ[null 参照の可能性があるものの逆参照です]と表示されて困っている方の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。