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

时间:2013-05-06 11:32:01

标签: c# oop instantiation

我想说的是:当你实例化一个类时,你可以在对象之后使用访问操作符(.)来使用该类的方法,但是如果你只想使用一个方法班级只有一次?这个click事件(下面的代码)中的表达式可以工作,但是这个方法被认为是一个好的/坏的编程实践吗?

    private void button1_Click(object sender, EventArgs e)
    {
        new AboutBox1().ShowDialog();
    }

4 个答案:

答案 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)

实际上取决于有关您班级的背景或目的。

如果您没有在任何地方使用它,则无需参考