在每个函数调用上创建类的实例,而不是将类的实例作为参数传递

时间:2012-12-31 13:35:45

标签: c# .net

正如问题的标题所说,我想知道哪种方法是正确的。为了澄清我的问题,我想举个例子。

假设在我的程序的main方法中,我给出了一系列对方法/方法的调用,这些方法/方法都使用了类的实例。所以 -

  1. 我应该在每次调用时在方法体中创建此类的实例。
  2. 或者我应该在main方法中创建一次类实例,并将此实例作为参数传递给从main方法调用的所有方法。
  3. 混淆是因为我从未见过任何使用第二种方法的例子,我认为在第一种方法处理时间会更多,因为每次调用使用该类的方法时都会创建类的实例。

1 个答案:

答案 0 :(得分:1)

这取决于具体情况:

  • 您需要在方法之间共享同一个对象,因为 创建实例的计算成本很高或者是 只是错误地拥有同一个对象的多个实例(想想 字段,文件缓冲区,数据库连接等。)

  • 有时你需要一次又一次地创建对象,即使有一个 计算成本高,因为它是解决问题的正确方法(散列,OCR,搜索,解压缩等)。

  • 大多数情况下,创建另一个实例的成本可以忽略不计,您首先要将模块化和良好的代码放在首位。