当我尝试在asp.net页面中运行此代码时,我收到错误此错误“对象未设置为对象的实例”
using System;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections.Generic;
public partial class Applications_Establishment_Test2 : System.Web.UI.Page
{
public class MYLIST
{
public string S_NUM;
public string NAME_E;
public string Dir;
public MYLIST(string s_num, string name_e, string dir)
{
s_num = S_NUM;
name_e = NAME_E;
dir = Dir;
}
}
public List<MYLIST> GetLista(string Snum)
{
List<MYLIST> UserInfo = new List<MYLIST>();
UserInfo.Add(new MYLIST(Snum, "John", "HR"));
return UserInfo;
}
protected void Page_Load(object sender, EventArgs e)
{
List<MYLIST> UserInfo = GetLista("AB1234");
MessageBox.Show(UserInfo[0].S_NUM.ToString());
}
}
尝试从列表中读取数据时触发错误,并在消息框中显示它们
MessageBox.Show(的UserInfo [0] .S_NUM.ToString());
任何人都可以帮忙吗
答案 0 :(得分:1)
原因是你没有在构造函数中初始化类的字段,而是参数变量。因此,字段保持null
,这会导致NullReferenceException
。所以请改用它:
public class MYLIST
{
public string S_NUM;
public string NAME_E;
public string Dir;
public MYLIST(string s_num, string name_e, string dir)
{
this.S_NUM = s_num;
this.NAME_E = name_e;
this.Dir = dir;
}
我总是先加this.
来防止这种不小心的错误。
此外,ASP.NET中没有MessageBox
,但无论如何你应该use the debugger。