我在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#初学者,我不确定是否存在我不知道的副作用。
我可以用这种方式吗?我在一个不需要变量的通用函数中访问变量 - 只访问控件,这也是没有变量的保证。
答案 0 :(得分:3)
是的,您的代码是正确的。
您可以创建并传递对象,而无需将它们分配给局部变量,实例字段或类似对象。
最极端的例子来证明如下所示 - 假设这个类:
public class Example
{
public int ProvideNumber()
{
return 42;
}
}
然后,您可以使用此类,例如,如下所示:
Console.WriteLine(new Example().ProvideNumber().ToString());
如您所见,这实例化了类Example
,但它没有将对新实例的引用分配给任何变量或其他任何内容;它只是调用一个方法,然后新实例将立即超出范围。
这适用于任意类,控件类也不例外。您应该注意的唯一重要问题是某些类需要disposed of。在这种情况下,将引用分配给变量是有意义的,因为您可能希望对新实例和执行某些操作,然后调用Dispose
。