实例化类而不将其保存在对象中是一种糟糕的编程实践

本文关键字:一种 编程 保存 对象 存在 实例化 | 更新日期: 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();

实际上这取决于您的类的上下文或目的。

如果你不在任何不需要引用的地方使用

相关文章: