代码之家  ›  专栏  ›  技术社区  ›  Sinaesthetic

按按钮创建对象的新实例

  •  3
  • Sinaesthetic  · 技术社区  · 14 年前

    这看起来应该很简单,但我很难把我的大脑包围起来。通常,您可以用以下几种方法之一声明一个对象

    ClassName a;
    a = new ClassName();
    

    ClassName a = new ClassName();
    

    等。。。

    但是由于您在编译时显式地声明了这些,所以当我应该在运行时编写代码时,我会感到困惑。我要做的是在单击按钮时实例化类的新实例。但这里我不明白的是,如果按一下按钮,对象名将如何命名?

    4 回复  |  直到 14 年前
        1
  •  5
  •   Henk Holterman    14 年前

    更糟糕的是,对象根本没有名称。
    你是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
    }
    
        2
  •  2
  •   Inisheer    14 年前
    public partial class Form1
    {
        Classname myClass;
    
        public void Button1_Click(...)
        {
              myClass = new Classname();
        }
    }
    

    ?

        3
  •  1
  •   user472875    14 年前

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

        4
  •  1
  •   Nobody    14 年前

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

    你得把扣子扣上 Click

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

    然后用一些像

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