c#List不返回值“对象引用未设置为对象的实例”

时间:2015-02-24 15:07:34

标签: c# list

当我尝试在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());

任何人都可以帮忙吗

1 个答案:

答案 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