C# visual studio中的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:

我的代码中有一个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行: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:a
string
可以为空-它的处理非常松散,就像空字符串一样。唯一一次出现问题的是,您执行的函数需要
(!String.IsNullOrEmpty(s1))
@IAbstract:是的,我知道,但这就是我的观点。如果是这种情况,则可能不是Label1为空。@Alxandr:A
.Text
属性不起作用。默认情况下,它不尝试解析任何内容-仅用于显示。如果OP在
.Text
属性更改时发生其他事件,则异常不会出现在
标签1
;或者,该操作可能导致初始化异常。@Alxandr如果该异常是从
Text
属性内部引发的,则该异常将反映为堆栈跟踪上的另一个级别(它将从
Text
属性设置器开始)。这就是为什么可以判断它来自那一行——而不是来自
Text
的内部。您的解释很好,但是如果Label1的Text属性有类似
if(value==null)抛出新的NullReferenceException()的内容会怎样?这难道不意味着问题可能是s1为空吗?虽然您可能会在stacktrace中得到一个额外的行。@Alxandr:a
string
可以为空-它的处理非常松散,就像空字符串一样。唯一一次出现问题的是,您执行的函数需要
(!String.IsNullOrEmpty(s1))
@IAbstract:是的,我知道,但这就是我的观点。如果是这种情况,则可能不是Label1为空。@Alxandr:A
.Text
属性不起作用。默认情况下,它不尝试解析任何内容-仅用于显示。如果OP在
.Text
属性更改时发生了其他事件,则异常不会发生