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

apd*_*pdm -1 c#

它突出显示了我的对象c并说它是null,即使我在前一行创建了对象.我指的是下面的这一行.

c.wm.Add(new Dictionary<string, string>());
Run Code Online (Sandbox Code Playgroud)

这是整个事情:

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>());    
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*eve 5

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

public dict()
{
    wm = new List<Dictionary<string, string>>();
}
Run Code Online (Sandbox Code Playgroud)

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

public dict()
{
    this.wm = new List<Dictionary<string, string>>();
}
Run Code Online (Sandbox Code Playgroud)