我的代码中出现了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
答案 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尚未初始化。