visual studio中的nullreferenceexception

时间:2011-07-02 05:39:38

标签: c# nullreferenceexception

我的代码中出现了NullReferenceException。

我从同一项目中的另一个页面调用方法datecheck,并传递两个字符串作为参数。它们包含用户以字符串格式选择的日期。 现在,当我尝试使用这些字符串值初始化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:\ Aditya \ GuestHouse \ GuestHouseApp \ GuestHouseApp \ Booking Status.aspx.cs Line:41

堆栈追踪:

  

[NullReferenceException:Object   引用未设置为的实例   对象。]
  GuestHouseApp.Booking_Status.datecheck(字符串   s1,String s2)in   I:\阿迪亚\ GuestHouse的\ GuestHouseApp \ GuestHouseApp \预订   Status.aspx.cs:41个
  GuestHouseApp.Booking.Button1_Click(Object sender,EventArgs e)in   I:\阿迪亚\ GuestHouse的\ GuestHouseApp \ GuestHouseApp \ Booking.aspx.cs:28
  System.Web.UI.WebControls.Button.OnClick(EventArgs的   e)+113
  System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串   eventArgument)+112
  System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串   eventArgument)+10
  System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler   sourceControl,String eventArgument)+13
  System.Web.UI.Page.RaisePostBackEvent(NameValueCollection中   postData)+36
  System.Web.UI.Page.ProcessRequestMain(布尔   includeStagesBeforeAsyncPoint,Boolean   includeStagesAfterAsyncPoint)+5348

2 个答案:

答案 0 :(得分:4)

注意错误消息和行号。以下是如何读取堆栈跟踪:

对象引用[为null且未]设置为对象的实例[在方法中] GuestHouseApp.Booking_Status.datecheck [at file:line] Status.aspx.cs:41

如果编译的代码是最新的,那么这意味着行Label1.Text = s1;是引发异常的行。

此外,可以推断Label1为空,因为发生这种情况时会引发NullReferenceException:(anExpressionEvaluatingToNull).Member。在该行中访问的显式接收器(可能为null)上的唯一成员是Text,因此Label1必须为空。

如果需要,请使用调试器:然后您可以检查当前变量和对象。

快乐的编码。

答案 1 :(得分:0)

我猜测Label1尚未初始化。