C# visual studio中的nullreferenceexception
我的代码中有一个NullReferenceException 我从同一项目中的另一个页面调用datecheck方法,并传递两个字符串作为参数。其中包含用户以字符串格式选择的日期。 现在,当我尝试用这些字符串值初始化2个标签label1和label2时,我得到了NullReferenceException 显示错误和堆栈跟踪的代码行如下所示:C# visual studio中的nullreferenceexception,c#,nullreferenceexception,C#,Nullreferenceexception,我的代码中有一个NullReferenceException 我从同一项目中的另一个页面调用datecheck方法,并传递两个字符串作为参数。其中包含用户以字符串格式选择的日期。 现在,当我尝试用这些字符串值初始化2个标签label1和label2时,我得到了NullReferenceException 显示错误和堆栈跟踪的代码行如下所示: Line 39: public void datecheck(String s1, String s2) Line 40:
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行:41
堆栈跟踪:
[NullReferenceException:对象
引用未设置为的实例
对象。]宾馆预订状态日期检查(字符串 s1,字符串s2)输入 I:\Aditya\GuestHouse\GuestHouseApp\GuestHouseApp\Booking Status.aspx.cs:41
宾馆P.预订.按钮1\u在中单击(对象发送者,事件参数e) I:\Aditya\GuestHouse\GuestHouseApp\GuestHouseApp\Booking.aspx.cs:28
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +113
System.Web.UI.WebControl.Button.RaisePostBackEvent(字符串 事件参数)+112
System.Web.UI.WebControl.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串 事件参数)+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,布尔值 includeStagesAfterAsyncPoint)+5348
我猜Label1尚未初始化。我猜Label1尚未初始化。请注意错误消息和行号。以下是如何读取堆栈跟踪: 对象引用[为空且]未设置为对象的实例[在方法]guesthouse app.Booking_Status.datecheck[at file:line]Status.aspx.cs:41 如果编译的代码是最新的,则这意味着行
Label1.Text=s1
是引发异常的行
此外,可以推断,Label1
为null,因为发生这种情况时会引发NullReferenceException:(anExpressionEvaluationToNLL).Member
。在该行中访问的显式接收器上的唯一成员(可能为null)是Text
,因此Label1
必须为null
如果需要,使用调试器:然后可以检查当前变量和对象
快乐编码。注意错误信息和行号。以下是如何读取堆栈跟踪: 对象引用[为空且]未设置为对象的实例[在方法]guesthouse app.Booking_Status.datecheck[at file:line]Status.aspx.cs:41 如果编译的代码是最新的,则这意味着行
Label1.Text=s1
是引发异常的行
此外,可以推断,Label1
为null,因为发生这种情况时会引发NullReferenceException:(anExpressionEvaluationToNLL).Member
。在该行中访问的显式接收器上的唯一成员(可能为null)是Text
,因此Label1
必须为null
如果需要,使用调试器:然后可以检查当前变量和对象
快乐编码。您尚未初始化
标签1
。。。再检查一遍。仅为.Text属性赋值不会初始化Label控件几乎所有的NullReferenceException
情况都是相同的。请参阅“”以获取一些提示。您尚未初始化标签1
。。。再检查一遍。仅为.Text属性赋值不会初始化Label控件几乎所有的NullReferenceException
情况都是相同的。请参阅“”以获得一些提示。您的解释很好,但是如果Label1的Text属性具有类似于if(value==null)抛出新的NullReferenceException()的内容,该怎么办代码>?这难道不意味着问题可能是s1为空吗?虽然您可能会在stacktrace中得到一个额外的行。@Alxandr:astring
可以为空-它的处理非常松散,就像空字符串一样。唯一一次出现问题的是,您执行的函数需要(!String.IsNullOrEmpty(s1))
@IAbstract:是的,我知道,但这就是我的观点。如果是这种情况,则可能不是Label1为空。@Alxandr:A.Text
属性不起作用。默认情况下,它不尝试解析任何内容-仅用于显示。如果OP在.Text
属性更改时发生其他事件,则异常不会出现在标签1
;或者,该操作可能导致初始化异常。@Alxandr如果该异常是从Text
属性内部引发的,则该异常将反映为堆栈跟踪上的另一个级别(它将从Text
属性设置器开始)。这就是为什么可以判断它来自那一行——而不是来自Text
的内部。您的解释很好,但是如果Label1的Text属性有类似if(value==null)抛出新的NullReferenceException()的内容会怎样代码>?这难道不意味着问题可能是s1为空吗?虽然您可能会在stacktrace中得到一个额外的行。@Alxandr:astring
可以为空-它的处理非常松散,就像空字符串一样。唯一一次出现问题的是,您执行的函数需要(!String.IsNullOrEmpty(s1))
@IAbstract:是的,我知道,但这就是我的观点。如果是这种情况,则可能不是Label1为空。@Alxandr:A.Text
属性不起作用。默认情况下,它不尝试解析任何内容-仅用于显示。如果OP在.Text
属性更改时发生了其他事件,则异常不会发生