按下按钮创建对象的新实例

时间:2010-11-07 22:10:19

标签: c# runtime instantiation

看起来它应该足够简单,但我很难将我的大脑缠绕在它周围。通常你会用几种方式声明一个对象

ClassName a;
a = new ClassName();

ClassName a = new ClassName();

等...

但是因为你在编译时明确地声明了这些,所以当我想在运行时将其编码时,我会感到困惑。我想要做的是在单击按钮时实例化一个新的Class实例。但是我在这里没有理解的是,如果按钮点击发生这种情况,对象名称将如何被命名?

4 个答案:

答案 0 :(得分:5)

更糟糕的是,物体根本没有名字 你是naimg的变量是对象的引用。

重要的是你决定对象属于什么:

void ButtonClick_H1(...)
{
  ClassName a;          //local variable
  a = new ClassName();  // object belongs to this method
}


private  ClassName anObject;   // class field
void ButtonClick_H2(...)
{ 
  anObject = new ClassName();  // object belongs to  'this' Form
}

答案 1 :(得分:2)

public partial class Form1
{
    Classname myClass;

    public void Button1_Click(...)
    {
          myClass = new Classname();
    }
}

答案 2 :(得分:1)

好吧,您使用上面显示的代码创建对象,这将是您的类的新实例。如果你在方法的范围内声明了它,它将在方法之后停止存在(除非有外部引用),但如果你在方法之外将它声明为类变量,它将保持到类被销毁为止。 / p>

答案 3 :(得分:1)

与您通常命名对象的方式完全相同。

您需要挂钩按钮的Click事件:

this.Button.Click += new RoutedEventHandler(Button_Click);

然后使用类似

的内容
private void Button_Click(object sender, RoutedEventArgs e)
{
    ClassName a = new ClassName();
}