【问题标题】:accessing list objects from different class C#访问来自不同类 C# 的列表对象
【发布时间】:2012-11-10 05:45:01
【问题描述】:

我正在尝试锻炼以了解如何访问来自不同班级的列表项目并更新相同的项目,我在下面有我的代码以供澄清。

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

有一个 Person 类,它具有实例变量 Name、Streetaddress 等。

遇到错误

空引用异常未处理

请帮帮我..

【问题讨论】:

  • 新关键字在哪里?您还没有为 List 使用新关键字

标签: c# c#-4.0 c#-3.0 c#-2.0


【解决方案1】:

List 类实例化时需要实例化内部List&lt;Person&gt;。否则为空。

class list
{

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

}

【讨论】:

  • 谢谢你,抱歉这些愚蠢的问题。我还在学习C#所以..谢谢..
  • Np raam030。我也经常犯同样的错误。如果您处于调试模式,您还可以查看异常堆栈跟踪,它通常会显示发生空引用异常的行号,这非常有用。如果此答案对您有所帮助,您可以单击数字下方的复选标记接受它,这将有助于以后的人更容易找到它。
【解决方案2】:

基本上,您已经在 list 类中定义了一个属性 People,但尚未对其进行初始化。只需在 list 类的构造函数中初始化即可。

你可以试试:

class list
    {

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

       public list()
       {
         people = new List<Person>();
       }
    }

【讨论】:

  • 谢谢朋友,正如上面的评论,我没有在我的班级中实例化列表,现在它已经排序了。谢谢
猜你喜欢
  • 2021-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-08
  • 2023-03-19
  • 1970-01-01
相关资源
最近更新 更多