有人可以解释这段代码吗?

时间:2013-08-28 08:26:14

标签: c# .net winforms constructor

我的一个朋友,在我的应用程序中编写了一些代码(我无法弄清楚,并且它有效)。但我真的不明白它在做什么。有人可以解释一下吗?

AddForm:

    public AddMember(MainForm mainForm)
    {
        InitializeComponent();

        MainForm = mainForm;
    }

的MainForm:

    private void NewMemberButton_Click(object sender, EventArgs e)
    {
        AddMember addMember = new AddMember(this);

        addMember.ShowDialog();
    }

我不理解粗体部分:

  

公开 AddMember(MainForm mainForm)

     

AddMember addMember = new AddMember(this);

4 个答案:

答案 0 :(得分:8)

public AddMember(MainForm mainForm)

由于没有指定返回类型,AddMember实际上是构造函数 - 因此类型必须是AddMember。构造函数接受类型为MainForm的参数,可能是对表单实例的引用。

AddMember addMember = new AddMember(this);

这将创建一个类型为AddMember的新实例,将当前实例(可能是MainForm)作为值传入,并将此新AddMember引用分配给名为{{的变量1}}。

什么不清楚?

答案 1 :(得分:2)

public AddMember(MainForm mainForm)

看起来constructor接受名为MainForm的{​​{1}}个对象。

在构造函数中,您创建一个mainForm的新实例,并将当前实例作为参数(AddMember)传入。这个新创建的对象称为this

答案 2 :(得分:1)

  

public AddMember(MainForm mainForm)

AddMember的{​​{3}},将参数mainForm作为MainForm的实例,在您创建该类的实例即AddMember类时执行。

  

AddMember addMember = new AddMember(this)

这将创建类AddMember的实例,它将当前类作为参数传递。看起来您的对象创建发生在MainForm类。

答案 3 :(得分:1)

AddMember()方法是AddMember类的构造函数,它恰好存在于AddForm文件中。

AddMember addMember = new AddMember(this);

正在创建AddMember类的实例,并将对封闭对象的引用传递给它。