繁体   English   中英

空异常检查字符串是否为空时出错?

[英]Null Exception Error when checking string for null?

当我运行代码时,我在文本框的不同行上放置了多个字符串,但是它断了,说“ Items.Add(item)”上存在Null Exception错误,我不确定为什么会收到此错误,因为在Visual Studio中,该字符串变量item不为null,它包含一个返回字符,因此我不确定这是否是一个问题。例如item =“ uno \\ r”。 另外,Items是字符串列表。 有谁知道为什么我不断收到此Null异常?

    public List<string> Items;        


    public void getItemsFromTextBox(TextBox textbox)
    {
        string[] lines = textbox.Text.Split('\n');
        foreach (string item in lines)
        {
            if (!String.IsNullOrWhiteSpace(item))
                Items.Add(item);
        }
    }

您尚未初始化列表,它为空!

public List<String> Items = new List<String>();

您必须创建Items列表的实例:

public void getItemsFromTextBox(TextBox textbox)
{
    Items = new List<string>();
    string[] lines = textbox.Text.Split('\n');
    foreach (string item in lines)
    {
        if (!String.IsNullOrWhiteSpace(item))
            Items.Add(item);
    }
}

只需尝试以下代码即可。我想您的Items列表是全局列表和shared列表。因此最好检查一下List是否已初始化,如果没有初始化,则先进行初始化,然后做其余的事情。

    public List<string> Items;        

    public void getItemsFromTextBox(TextBox textbox)
    {
        if(null == Items)
        {
          Items = new List<string>();
        }
        foreach (string item in textbox.Text.Split('\n'))
        {
            if (!String.IsNullOrWhiteSpace(item))
                Items.Add(item);
        }
    }

您必须具有“列表项”的实例。

采用

public List<String> Items = new List<String>();

或使用以下代码

public void getItemsFromTextBox(TextBox textbox)
{
    List<string> Items = !string.IsNullOrWhiteSpace(textbox.Text) ? textbox.Text.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries).ToList() : new List<string>();
}

确保已实例化“项目”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM