1

私のコードを実行するとき、テキストボックスの異なる行にいくつかの文字列を配置しましたが、「Items.Add(item)」に Null Exception エラーがあると言って壊れます。Visual Studio では文字列が変数itemはnullではなく、リターン文字が含まれているため、それが問題であるかどうかはわかりません..たとえば、item = "uno\r". また、Items は文字列のリストです。この Null Exception が発生し続ける理由を知っている人はいますか?

    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);
        }
    }
4

5 に答える 5

6

リストが初期化されていません。null です。追加

public List<String> Items = new List<String>();
于 2013-10-05T06:36:05.803 に答える
1

Items次のコードを試してみてください。あなたのリストはグローバルなものであり、リストであると思います。リストsharedが初期化されていることを確認するか、そうでない場合は最初に初期化して残りの作業を行うことをお勧めします。

    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);
        }
    }
于 2013-10-05T06:48:19.227 に答える
1

リスト アイテムのインスタンスを作成する必要があります。

使用する

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>();
}
于 2013-10-05T07:04:09.573 に答える