2011-07-02 21 views
1

私のコードでNullReferenceExceptionが発生しています。ビジュアルスタジオでnullreferenceexception

同じプロジェクトの別のページからdatecheckというメソッドを呼び出し、2つの文字列をパラメータとして渡します。これらは、ユーザーが文字列形式で選択した日付を含みます。 これで、2つのラベルlabel1とlabel2をこれらの文字列値で初期化しようとすると、NullReferenceExceptionが発生します。次のように

エラーとスタックトレースを示すコード行は次のとおりです。

Line 39:   public void datecheck(String s1, String s2) 
Line 40:   { 
Line 41:    Label1.Text = s1; 
Line 42:    Label2.Text = s2;    
Line 43:   } 

ソースファイル:I:\アーディティヤ\ゲストハウス\ GuestHouseApp \ GuestHouseApp \予約Status.aspx.csライン:41

スタックトレース:

【とNullReferenceException: オブジェクトのインスタンスに設定されていないオブジェクト 参照。]
GuestHouseApp.Booking_Status.datecheck で(文字列 S1、文字列s2)I:\アーディティヤ\ゲストハウス\ GuestHouseApp \ GuestHouseApp \予約 Status.aspx.cs:41
GuestHouseApp.Booking.Button1_Click(オブジェクト送信者、EventArgsの電子) でのI:\アーディティヤ\ゲストハウス\ GuestHouseApp \ GuestHouseApp \ Booking.aspx.cs:28
System.Web.UI.WebControls.Button.OnClick(EventArgsの e)の113
System.Web.UI.WebControls。 Button.RaisePostBackEvent(String eventArgument)+112
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)+10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl、ストリングeventArgument)+13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollectionの POSTDATA)+36
System.Web.UI.Page.ProcessRequestMain (ブール includeStagesBeforeAsyncPoint、ブール のincludeStagesAfterAsyncPoint)5348

+0

あなたはまだ 'Label1' ...を初期化していません。 .Textプロパティに値を割り当てるだけでは、Labelコントロールが初期化されません。 – IAbstract

+0

'NullReferenceException'のほとんどすべてのケースが同じです。いくつかのヒントについては、「[.NETのNullReferenceExceptionは何ですか?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net)」を参照してください。 –

答えて

0

私はLabel1には初期化されていない推測しています。

4

エラーメッセージと行番号に注意してください。

オブジェクト参照[メソッド内]オブジェクトのインスタンスに設定されていません。GuestHouseApp.Booking_Status.datecheck [ファイル:行] Status.aspx.cs :41

コンパイルされたコードが最新の場合は、Label1.Text = s1;という行が例外を発生させる行であることを意味します。

さらに、が発生したときにNullReferenceExceptionが発生するため、Label1がnullであることが推測できます。明示的な受信者の明示的な受信者(拒否される可能性があります)の唯一のメンバーはTextですので、Label1はnullにする必要があります。

必要に応じてデバッガを使用します。現在の変数とオブジェクトを検査できます。

ハッピーコーディング。

+1

+1良い説明 –

+0

あなたの説明は良いですが、Label1のTextプロパティが 'if(value == null)throw new NullReferenceException();'それは、問題がnullである可能性がありますか?おそらくスタックトレースに余分な行があります。 – Alxandr

+0

@Alxandr: 'string'はnullでもかまいません - 空の文字列のように扱われます。これが問題になるのは、あなたが '(!String.IsNullOrEmpty(s1))'を必要とする関数を実行することでした。 – IAbstract

関連する問題