2

別のクラスのリストアイテムにアクセスして同じものを更新する方法を確認するためにワークアウトしようとしています。明確にするために、以下のコードを使用しています。

class list
{
    private List<Person> people;
    public List<Person> People
    {
       get { return people; }
       set { people = value; }
    }
}

public partial class Form2 : Form
{
    Person p = new Person();
    list l = new list();

    p.Name = textBox1.Text;
    p.Streetaddress = textBox2.Text;
    p.Email = textBox3.Text;
    p.Birthday = dateTimePicker1.Value;
    p.AdditionalNotes = textBox4.Text;

    l.People.Add(p);
    listView2.Items.Add(p.Name);
}

Name、Streetaddressなどのインスタンス変数を持つPersonクラスがあります。

エラーが発生する

Nullreference例外は処理されませんでした

私を助けてください..

4

2 に答える 2

6

List<Person>Listクラスがインスタンス化されるときに、内部をインスタンス化する必要があります。それ以外の場合はnullになります。

class list
{

   private List<Person> people = new List<Person>();
   public List<Person> People
   {
       get { return people; }
       set { people = value;}
   }

}
于 2012-11-10T05:47:40.220 に答える
2

基本的に、クラスリストにPeopleプロパティを定義しましたが、初期化していません。リストクラスのコンストラクタで初期化するだけです。

試してみてください:

class list
    {

       private List<Person> people;
       public List<Person> People
       {
           get { return people; }
           private set { people = value;}
       }

       public list()
       {
         people = new List<Person>();
       }
    }
于 2012-11-10T05:48:09.273 に答える