我想说的是:当你实例化一个类时,你可以在对象之后使用访问操作符(.
)来使用该类的方法,但是如果你只想使用一个方法班级只有一次?这个click事件(下面的代码)中的表达式可以工作,但是这个方法被认为是一个好的/坏的编程实践吗?
private void button1_Click(object sender, EventArgs e)
{
new AboutBox1().ShowDialog();
}
答案 0 :(得分:9)
但这种方法被认为是一种好/坏的编程习惯吗?
如果您不打算在代码中稍后使用表单AboutBox1
的实例,那么它没什么不好的。
以上内容也用于从静态方法调用非静态方法,如:
class MyTest
{
public void InstanceMethod()
{
}
public static void StaticMethod()
{
new MyTest().InstanceMethod();
}
}
答案 1 :(得分:4)
只要对象不需要处理,使用它就没有错。
显示创建仅持续语句持续时间的对象的好处的示例是使用StringBuilder
创建字符串:
string tag =
new StringBuilder()
.Append("<div id=\"")
.Append(id)
.Append("\">")
.ToString();
当Append
方法返回StringBuilder
个实例时,它们是可链接的,直到您调用ToString
并且您最终只得到字符串并且StringBuilder
消失。< / p>
答案 2 :(得分:2)
您所显示的代码没有问题,除非您创建的是需要在使用后进行处理的实例。
如果需要处理实例,请使用using
块:
using (var aboutBox = new AboutBox()) {
aboutBox.ShowDialog();
}
否则,构造函数之后的直接成员调用没有任何持久变量/引用就可以了:
new AboutBox().ShowDialog();
答案 3 :(得分:0)
实际上取决于有关您班级的背景或目的。
如果您没有在任何地方使用它,则无需参考