在表单中声明C#类对象

Syl*_*ond 1 c# forms collections visual-studio

可以放在"view = new Person"按钮事件处理程序中吗?如果我不这样做,并将其放在Form1构造函数中,则只添加我的最后一个值.如果我想声明一个新实例然后将其添加到我的Arraylist中,这是正确的方法吗?

    private ArrayList store;

    public Form1()
    {
        InitializeComponent();
        store = new ArrayList();
    }

    private void Form1_Load(object sender, EventArgs e)
    { }

    private void button1_Click(object sender, EventArgs e)
    {
        //Is it okay to declare a new instance of the Person class 
        // with each button push?            
        Person view = new Person();
        view.firstname = txtFirstName.Text;
        view.lastname = txtLastName.Text;
        store.Add(view);
        txtFirstName.Clear();
        txtLastName.Clear();   
    }

    private void button2_Click(object sender, EventArgs e)
    {
        foreach (Person display in store)
        {
            MessageBox.Show(display.ToString());
        }
    }
Run Code Online (Sandbox Code Playgroud)

Ree*_*sey 5

可以在按钮事件处理程序中放置"view = new Person"吗?

是.如果您的目标是每次单击按钮时创建一个新人,这是合适的.

在旁注:你应该考虑使用List<Person>而不是ArrayList.这是较新的,类型安全的列表类(从.NET 2.0开始),并且使用起来更好.