C# asp.net中同一语句的对象引用null

C# asp.net中同一语句的对象引用null,c#,c#-2.0,object-reference,C#,C# 2.0,Object Reference,我在运行应用程序时遇到了一个奇怪的问题 我有一个类[Say studentInfo],我在页面加载[即页面范围]之上为其声明一个实例 StudentInfo sInfo; 在Page_load上,我调用此实例来调用该类的函数,一切正常: 例如:string studentName=sInfo.GetStudentId(studentId) 但是,当我在同一页的不同函数中编写上述相同代码时,我得到了以下错误: 对象引用不能设置为null private infoList GetInfo() {

我在运行应用程序时遇到了一个奇怪的问题

我有一个类[Say studentInfo],我在页面加载[即页面范围]之上为其声明一个实例

StudentInfo sInfo;
在Page_load上,我调用此实例来调用该类的函数,一切正常:

例如:
string studentName=sInfo.GetStudentId(studentId)

但是,当我在同一页的不同函数中编写上述相同代码时,我得到了以下错误:

对象引用不能设置为null

private infoList GetInfo()
{
 int studentId = // some logic;
 string studentName = sInfo.GetStudentId(studentId);
}

您正在声明变量,但没有创建它


尝试
StudentInfo sInfo=newstudentinfo()

您可能在
Page\u Load
之前调用了此方法。是否可以再粘贴一点代码,例如设置
sInfo
的位置?这取决于sInfo初始化的位置和调用GetInfo的位置。但似乎在sInfo初始化之前使用了GetInfo()。@Adeel我在回发时调用方法GetInfo()。@Pieter我在调用相同的方法字符串studentName=sInfo.GetStudentId(studentId);从page_load开始,它可以正常工作,但在方法中放置它时会出现运行时错误。我认为我已经为页面范围声明了实例,所以它应该可以正常工作,但事实并非如此。当我创建一个新实例时,我也会遇到同样的运行时错误。@zerotoinfinite您在哪里创建实例?您需要在每次使用页面时创建它。默认情况下,它不会保留回发状态,需要重新创建/获取。现在已解决。我再次创建了一个新实例,它成功了。