エラーの対処方法

【C# sharp】NullReferenceExceptionの5つの発生原因と対処方法

ChatGPTのAPIを使わずに自動化することが可能です。
下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。

NullReferenceExceptionの対処法

NullReferenceExceptionは、null参照を参照しようとしたときに発生するエラーです。

これは、オブジェクトがまだ作成されていないか、明示的にnullに設定されている場合に発生します。

サルモリ
そうなんだ、nullを参照するとエラーになるんだね。

今回の記事では、NullReferenceExceptionが発生してしまう事例と解決方法を解説していきます!

C#のエラー一覧はコチラ

【C# sharp】よく発生するエラー一覧10選 エラーの発生原因と対処方法

ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 今回のテーマ ...

続きを見る

ケース1: オブジェクトがまだ作成されていない

まず、オブジェクトがまだ作成されていない場合について見ていきましょう。

上記のコードでは、"str"という文字列変数を宣言していますが、具体的な値を設定していません。
そのため、str.Lengthを参照しようとすると、NullReferenceExceptionが発生します。

 出力結果
System.NullReferenceException: Object reference not set to an instance of an object. 

これを解決するためには、strに具体的な値を設定する必要があります。

このようにstrに具体的な文字列を設定することで、str.Lengthを参照することができ、NullReferenceExceptionは発生しません。

 出力結果
13 
サルモリ
なるほど、変数を使う前にはちゃんと値を設定しなきゃいけないんだね。

ケース2: 明示的にnullに設定されている

次に、明示的にnullに設定されている場合について見ていきましょう。

上記のコードでは、初めにstrに具体的な文字列を設定していますが、その後でstrをnullに設定しています。
そのため、str.Lengthを参照しようとすると、NullReferenceExceptionが発生します。

 
System.NullReferenceException: Object reference not set to an instance of an object. 

これを解決するためには、strをnullに設定した後でstr.Lengthを参照しないようにします。

このようにstrをnullに設定する前にstr.Lengthを参照することで、NullReferenceExceptionは発生しません。

 出力結果
13 
サルモリ
ああ、nullに設定する前に必要な操作を終えておくんだね。

ケース3: Null合体演算子を使用する

Null合体演算子を使用して、NullReferenceExceptionを防ぐ方法もあります。

上記のコードでは、Null合体演算子(??)を使用しています。これは、左辺がnullでない場合には左辺の値を、nullである場合には右辺の値を返す演算子です。
このため、strがnullの場合でもNullReferenceExceptionは発生せず、0が出力されます。

 出力結果
0 
サルモリ
ほぉ、Null合体演算子を使うと、nullの時にどうするかを指定できるんだね。便利だな!

ケース4: Null条件演算子を使用する

Null条件演算子を使用して、NullReferenceExceptionを防ぐ方法もあります。

上記のコードでは、Null条件演算子(?.)を使用しています。これは、nullでない場合にだけアクセスを行い、nullの場合にはnullを返す演算子です。
このため、strがnullの場合でもNullReferenceExceptionは発生せず、0が出力されます。

 出力結果
0 
サルモリ
Null条件演算子も便利だね。これなら、nullのときにエラーが出ないようにできるんだね。

ケース5: nullチェックを行う

直接的な方法として、nullチェックを行うこともできます。

上記のコードでは、strがnullでない場合にだけstr.Lengthを参照しています。
そのため、strがnullの場合でもNullReferenceExceptionは発生せず、0が出力されます。

 出力結果
0 
サルモリ
ああ、if文でnullチェックをすれば、確実にエラーを防げるんだね。

C#のLinqを徹底的に学びたい方は画像をクリックしてご覧ください!
KindleUnlimited会員であれば、全ての本をご覧頂けます。 Linqを理解すれば、C#プログラミングの世界が変わる 第1版

まとめ

以上、C#でNullReferenceExceptionが発生したときの対処法について解説しました。
対策方法としては、オブジェクトが作成されていることを確認する、nullに設定する前に必要な操作を行う、Null合体演算子やNull条件演算子を使用する、nullチェックを行う、などがあります。
これらの方法を使い分けることで、NullReferenceExceptionを適切に対処できます。

サルモリ
なるほど、色々な対処法があるんだね。これなら、NullReferenceExceptionに困ることはなさそうだね!

最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!

サルモリ
最後まで読んでくれてありがとう!!

C#のエラー一覧はコチラ

【C# sharp】よく発生するエラー一覧10選 エラーの発生原因と対処方法

ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 今回のテーマ ...

続きを見る

-エラーの対処方法

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock