实例化类而不将其保存在对象中是一种糟糕的编程实践
本文关键字:一种 编程 保存 对象 存在 实例化 | 更新日期: 2023-09-27 18:12:13
我想说的是:当您实例化一个类时,您可以在对象之后使用访问操作符(.
)使用该类的方法,但是如果您只想使用类的一个方法并且只有一次?这个点击事件中的表达式(下面的代码)将工作,但这种方法被认为是一个好/坏的编程实践?
private void button1_Click(object sender, EventArgs e)
{
new AboutBox1().ShowDialog();
}
但是这种方法被认为是一种好的/坏的编程实践吗?
如果您不打算在稍后的代码中使用表单AboutBox1
的实例,那么它没有什么不好的。
也用于从静态方法调用非静态方法,如:
class MyTest
{
public void InstanceMethod()
{
}
public static void StaticMethod()
{
new MyTest().InstanceMethod();
}
}
只要对象不需要处理,那么这样使用它就没有问题。
使用StringBuilder
创建一个字符串,这个示例显示了创建一个只在语句持续时间内持续的对象的好处:
string tag =
new StringBuilder()
.Append("<div id='"")
.Append(id)
.Append("'">")
.ToString();
由于Append
方法返回StringBuilder
实例,它们是可链接的,直到您调用ToString
,您最终只得到字符串,StringBuilder
消失。
您所展示的代码没有问题,除非您正在创建一个实例,需要在使用后处理。
如果需要处理实例,使用using
块:
using (var aboutBox = new AboutBox()) {
aboutBox.ShowDialog();
}
否则,可以在构造函数之后直接调用成员,而不需要任何持久变量/引用:
new AboutBox().ShowDialog();
实际上这取决于您的类的上下文或目的。
如果你不在任何不需要引用的地方使用