必须是始终分配给变量的控件?

时间:2015-03-26 09:53:34

标签: c#

我在C#中试过这个构造:

    private class DailyTextBox : TextBox
    {
        public DailyTextBox(int x, int y)
        {
            ...
            this.Location = new Point(x, y);
            this.Size = new Size(50, 20);
            this.TextAlign = HorizontalAlignment.Right;
            ...
        }
    }

    ...
    groupBoxControl.Controls.Add(new DailyTextBox(100, 90));

直接在TextBox函数中使用new创建的.Add()控件永远不会分配给变量。编译代码没有任何错误,屏幕上的结果看起来没问题。因为我是C#初学者,我不确定是否存在我不知道的副作用。

我可以用这种方式吗?我在一个不需要变量的通用函数中访问变量 - 只访问控件,这也是没有变量的保证。

1 个答案:

答案 0 :(得分:3)

是的,您的代码是正确的。

您可以创建并传递对象,而无需将它们分配给局部变量,实例字段或类似对象。

最极端的例子来证明如下所示 - 假设这个类:

public class Example
{
    public int ProvideNumber()
    {
        return 42;
    }
}

然后,您可以使用此类,例如,如下所示:

Console.WriteLine(new Example().ProvideNumber().ToString());

如您所见,这实例化了类Example,但它没有将对新实例的引用分配给任何变量或其他任何内容;它只是调用一个方法,然后新实例将立即超出范围。

这适用于任意类,控件类也不例外。您应该注意的唯一重要问题是某些类需要disposed of。在这种情况下,将引用分配给变量是有意义的,因为您可能希望对新实例执行某些操作,然后调用Dispose