C# Properties.Settings.Default.myList.Add(项)不';不要添加我的项目

C# Properties.Settings.Default.myList.Add(项)不';不要添加我的项目,c#,C#,我想将列表框中的项目添加到Properties.Settings.Default中的列表中,但它根本不起作用。我使用从Microsoft.VisualBasic库添加的messagebox将项目添加到我的列表框,然后将输入添加到列表框: private void Button_additem_Click(object sender, EventArgs e) { string itemname = Interaction.InputBox("Item hinzufügen", "Gib

我想将列表框中的项目添加到Properties.Settings.Default中的列表中,但它根本不起作用。我使用从Microsoft.VisualBasic库添加的messagebox将项目添加到我的列表框,然后将输入添加到列表框:

private void Button_additem_Click(object sender, EventArgs e)
{
    string itemname = Interaction.InputBox("Item hinzufügen", "Gib unten den Namen des Items ein.", "");
    if (itemname.Length > 0)
    {
        listbox_items.Items.Add(itemname);
    }
    else { }
    Save();
    Restore();
}
之后,我将使用Save()和Restore()空:

此错误与“System.NullReferenceException”“Planer.Properties.Settings.myList.get returned null”一起出现:

foreach (object item in listbox_items.Items)
{
    Properties.Settings.Default.myList.Add(item);  <---------
}
foreach(列表框中的对象项\u items.items)
{

Properties.Settings.Default.myList.Add(item);有一部分代码可以使此列表为空

        if (Properties.Settings.Default.myList == null)
        { } 
        else { Properties.Settings.Default.myList.Clear(); 
如果该列表为空,则不能添加项目,否则为空 与空null表示不存在相同,您将需要创建一个新的,因为您只需要在else中添加列表,所以:

if(Properties.Settings.Default.myList==null)
{Properties.Settings.Default.myList=新列表等..}

第二个代码块中的if语句没有真正意义。您应该执行
if(myList!=null).
而不是空的if和else中的代码。您还可以执行
myList?.Clear()
仅当
myList
不为空时才会执行methode。但如果要使用该运算符,则归结为首选项。此外,在第一个代码块中有一个空的else,可以完全删除。可能重复
        if (Properties.Settings.Default.myList == null)
        { } 
        else { Properties.Settings.Default.myList.Clear(); 
if (Properties.Settings.Default.myList == null)
        {Properties.Settings.Default.myList = new List<?> etc... }