Object reference not set to an instance of an object"とは、どのような意味ですか?
このエラーが表示されるのですが、どういうことでしょうか?
オブジェクト参照がオブジェクトのインスタンスに設定されていない。
180
8
このエラーが表示されるのですが、どういうことでしょうか?
オブジェクト参照がオブジェクトのインスタンスに設定されていない。
.NETの変数は、参照タイプまたは値タイプのいずれかです。 値のタイプは、整数やブール値などのプリミティブまたは構造です(System.ValueTypeから継承するため、識別できます)。 ブール変数は、宣言されるとデフォルト値になります。
参照タイプは、宣言されている場合、デフォルト値はありません。
null参照を使用してクラスインスタンスのメンバーにアクセスしようとすると、System.NullReferenceExceptionが表示されます。 これは、オブジェクト参照がオブジェクトのインスタンスに設定されていないと同じです。
次のコードは、これを再現する簡単な方法です。
これは非常に一般的なエラーであり、あらゆる種類の理由で発生する可能性があります。 根本的な原因は、実際に発生した特定のシナリオに依存します。
APIを使用している場合、またはnullを返す可能性のあるメソッドを呼び出す場合は、これを優雅に処理することが重要です。 上記の主な方法は、NullReferenceExceptionがユーザーに決して見られないように変更できます。
上記はすべて、実際には.NET Type Fundamentalsのヒントにすぎません。詳細については、C#を介して[CLR]を選択するか、同じ著者であるJeffrey RichterがこのMSDN記事を読むことをお勧めします。 また、NullReferenceExceptionに遭遇する可能性がある時期については、はるかに複雑な[例][7]を確認してください。
Resharperを使用している一部のチームは、JetBrains属性を使用してコードに注釈を付け、nullが予想される(予想されない)場所を強調表示します。
[7]:http://www.danielfortunov.com/software/$ daniel_fortunovs_adventures_in_software_development/2009/04/23/net_event_invocation_thread_safety。
これを取得する別の簡単な方法:
一言で言えば、それは意味します。. インスタンス化せずにオブジェクトにアクセスしようとしています。. 「新しい」キーワードを使用して、最初にそれをインスタンス化する必要がある場合があります。つまり、そのインスタンスを作成します。
例:
ぶっきらぼうに言うわけではありませんが、まさにその通りの意味です。オブジェクト参照の1つがNULLになっています。NULL'されたオブジェクトのプロパティやメソッドにアクセスしようとすると、このように表示されます。
というようなことをやったということです。
そして、することなくすること
if(myObject!=null)
, you go ahead do
myObject.Method();`.ほとんどの場合、値をオブジェクトにアッシュしようとすると、値がnullの場合、この種の例外が発生します。 このリンクを確認してください。
自己学習のために、チェック条件を設定できます。 お気に入り。
Nullオブジェクトを、あたかも適切なオブジェクトであるかのように使おうとしているのですから、まさにその通りです。 参照されるオブジェクト。
クラスがある場合:
そして私はそうします:
2行目は、この例外をスローします。これは、参照タイプオブジェクトで「null」(つまり、.
myClass = new MyClass()
)を呼び出すことによって実証されていません。