构造函数较少的类可以调用它们的方法而不实例化吗?

时间:2012-05-10 20:39:36

标签: c#

我可以避免初始化吗?

我有一个简单的工厂,没有构造函数。我这样用它:

var slf = new GenericSelectListFactory();
vm.Works = slf.getWorkgsl(0);
vm.Cars = slf.getCargsl(0);

我也可以这样使用它:

vm.Cars = new GenericSelectListFactory().getCargsl(0);

有没有办法在没有新关键字的情况下使用它?

vm.Cars = GenericSelectListFactory.getCargsl(0);

4 个答案:

答案 0 :(得分:8)

让你的班级方法成为静态。

class GenericSelectListFactory
{
   public static List<Cars> getCargsl()
   {
      // your logic here
   }

}

答案 1 :(得分:4)

没有“new”你应该把方法标记为静态

答案 2 :(得分:3)

编译器为没有构造函数的类分配了一个默认构造函数,主要是为了消除对空构造函数的需求:

  

除非该类是静态的,否则C#编译器会为没有构造函数的类提供一个公共默认构造函数,以便启用类实例化。

如果要在不初始化类的情况下访问方法,请创建方法static。但是,在执行此操作时,应确保方法是线程安全的。

答案 3 :(得分:2)

你可以使这些功能保持静止。