繁体   English   中英

在类中实例化

[英]Instantiate in the class

我正在做一些事情,我必须实例化这个类。 我的问题是我会在哪里做到这一点? 我会在此之前做到这一点:

public partial class Form1 : Form
    {
       InputClass myclass = new InputClass();
        public Form1()
        {
            InitializeComponent();
        }


Or

public partial class Form1 : Form
    {

        public Form1()
        {

        InputClass myclass = new InputClass();

            InitializeComponent();
        }

这是我正在处理的另一个代码,但它没有成功,这就是我的代码现在的样子:

public partial class Form1 : Form
{


    InputClass myClass = new InputClass();
    myClass.yourname = "";
    myClass.Banner = "";

 public Form1()
    {
        InitializeComponent();
    }

我是C#的新手,我正试图解决这个问题。 我需要实例化该类。 然后当页面加载添加时,从_banner变量设置标签文本。 然后添加代码,以便在用户按下按钮时从文本框中的文本设置属性yourname。 然后我需要清除文本框。 我还必须在类的消息框中显示名称。

 class InputClass
{
    public string _banner;
    private string _yourName;

    public InputClass(String _banner)
    {
        this._banner = _banner;
    }

    public string yourName
    {
        get { return _yourName; }
        set { _yourName = value; }
    }

}

}

如果要从类中的其他方法访问对象,则需要使用成员字段而不是局部变量。

private InputClass myClass = new InputClass { YourName = "", Banner = "" };

public Form1()
{
    InitializeComponent();
}

另一种选择是声明一个成员字段,但在构造函数中初始化它:

private InputClass myClass;

public Form1()
{
    InitializeComponent();
    this.myClass = new InputClass { YourName = "", Banner = "" };
}

这在您的特定情况下并不太有用,但如果您需要将构造函数中的参数传递给InputClass构造函数,它会很有用。

您只能在函数体内设置属性! 不在类上下文中。

实例化该类将在Form1()内或在声明时工作。 IMO在你的情况下最好的风格是:

public partial class Form1 : Form
{

    InputClass myclass;
    public Form1()
    {
        InitializeComponent();
        myclass = new InputClass();
    }
}

这使得人们不仅可以在Form1构造函数中使用myClass,还可以在任何其他函数中使用myClass。

首先,区分声明和实例化。 在您的第一个片段中,您在类范围中声明了InputClass成员,这意味着它将由类中的所有方法共享。 一旦你这样做,如果你在构造函数中或在声明期间实例化它并不重要,它(大多数)可以解决同样的问题。

其次,我猜这是一个ASP.NET项目,因为你引用了“页面加载”。 如果是这样,请记住您的Form1实例在页面加载之间不会保持活动状态。 每次重新加载页面时,无论是手动使用F5还是通过按钮单击/回发,您都将创建一个新的Form1实例,它将创建一个新的InputClass实例。

您在第一个示例中所做的是声明Form1的成员变量名为myclass。 你可以在同一个地方为它分配一个值,这很好:

public partial class Form1 : Form
{
    InputClass myclass = new InputClass();
    public Form1()
    {
        InitializeComponent();
    }
}

但是你通常不能在类声明中插入实际的代码语句(比如赋值myClass.yourname = "" )。 您需要将它们放在构造函数中。 所以这样做的正确方法是:

public partial class Form1 : Form
{
    InputClass myClass = new InputClass();

    public Form1()
    {
        myClass.yourname = "";
        myClass.Banner = "";
        InitializeComponent();
    }
}

要在按钮单击上执行操作,请查看此处: http//msdn.microsoft.com/en-us/library/43sxkdeb(v = vs。80).aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM