我创建对象时出现System.NullReferenceException消息?

时间:2016-01-12 04:16:06

标签: c#

它突出显示我的对象c并说它为空,即使我在前一行创建了对象。我在下面提到这一行。

c.wm.Add(new Dictionary<string, string>());

以下是整个事情:

public class dict
{
    public List<Dictionary<string, string>> wm;
    public dict()
    {
        List<Dictionary<string, string>> wm = new List<Dictionary<string, string>>();
    }
}    

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            dict c = new dict();    
            c.wm.Add(new Dictionary<string, string>());    
        }
    }
}

1 个答案:

答案 0 :(得分:5)

从构造函数中的wm声明中删除类型。您正在实例化一个名为wm的新变量,而不是在类上实例化该属性。

public dict()
{
    wm = new List<Dictionary<string, string>>();
}

更好的是,根据戴的评论,使用this关键字明确指定类属性。

public dict()
{
    this.wm = new List<Dictionary<string, string>>();
}