使用C#中的设置数组



我想写一个程序,它在某种程度上就像一个设计器,用户可以在表单上添加文本框,用户放入这些文本框的所有内容都可以保存(就像一个设置),在再次关闭和打开表单后,文本框的文本将保持不变。

因此,我决定在project->settings中进行设置,然后在代码中进行数组设置。但每当我想访问我的设置时,它都会给我一个例外:

"FormDesigner.exe"中发生类型为"System.NullReferenceException"的未处理异常

这是我定义数组的代码:

Settings[] formsetting=new Settings[3];

下面是我处理每一个文本框的textchanged事件的代码:(我使用文本框的标签将设置索引与每个文本框匹配)

void t_TextChanged(object sender, EventArgs e)
        {
            TextBox temp = (TextBox)sender;
            int s =(int) temp.Tag;
            string str = temp.Text;
            frmsetting[s].text = str;
        }

最后一行是我得到错误的地方。

有人能向我解释一下问题出在哪里以及如何解决吗?如果我的方法不对,你能告诉我另一种方法吗。感谢

您尚未初始化数组中的对象。

这样做:

Settings[] formsetting = new Settings[3];

创建数组。不过,这三个都是null。这样做:

var formsetting = new Settings[3] {
    new Settings(),
    new Settings(),
    new Settings()
};

初始化数组时,实际上并没有初始化任何值。你目前拥有的相当于以下内容:

Settings[] formsetting=new Settings[3];
formsetting[0] = null;
formsetting[1] = null;
formsetting[2] = null;

在进行任何操作之前,您需要在要使用的索引处初始化值。

最新更新