1. ホーム
  2. c#

オブジェクト参照がオブジェクトのインスタンスに設定されていません。[重複している]。

2023-08-24 19:59:33

質問

プログラムを実行すると、このエラーが出続けます。

オブジェクトの参照がオブジェクトのインスタンスに設定されていません。 説明 現在のWebリクエストの実行中に、処理されない例外が発生しました。 エラーの詳細とコードの発生場所については、スタックトレースを確認してください。 例外の詳細 System.NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。

Source Error:

Line with error:

Line 156:        if (strSearch == "" || strSearch.Trim().Length == 0)

正しい書き方は?

どのように解決するのですか?

.NET 4.0での正しい方法は。

if (String.IsNullOrWhiteSpace(strSearch))

String.IsNullOrWhiteSpace というメソッドは、上記で使用したものと同等です。

if (strSearch == null || strSearch == String.Empty || strSearch.Trim().Length == 0) 
// String.Empty is the same as ""

IsNullOrWhiteSpaceメソッドのリファレンスです。

http://msdn.microsoft.com/en-us/library/system.string.isnullorwhitespace.aspx

指定された文字列が、Nothing、empty、またはwhite-space文字のみで構成されているかどうか 空白文字だけであるかどうかを示します。

以前のバージョンでは、このようなことが可能でした。

if (String.IsNullOrEmpty(strSearch) || strSearch.Trim().Length == 0)

String.IsNullOrEmpty というメソッドは、上記で使用したものと同等です。

if (strSearch == null || strSearch == String.Empty)

ということは、まだ "IsWhiteSpace" の場合は .Trim().Length == 0 でチェックする必要があるということです。

IsNullOrEmptyメソッドのリファレンス

http://msdn.microsoft.com/en-us/library/system.string.isnullorempty.aspx

指定された文字列がNothingまたはEmpty stringであるかどうかを示します。

説明します。

あなたは strSearch (あるいは任意の変数) が null になる前に、ドット文字 ( . ) - すなわち strSearch.SomeMethod() または strSearch.SomeProperty であることを確認する必要があります。 strSearch != null .

あなたの例では、文字列が値を持っていることを確認したい、ということです。

  • nullでないこと
  • 空文字列でない ( String.Empty / "" )
  • 空白文字だけではありません

上記の場合、最初に "Is it null?" のケースを置く必要があります。そうすれば、文字列が null .