1

我可以避免初始化吗?

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

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

4 回答 4

9

使您的类的方法静态。

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

}
于 2012-05-10T20:42:26.277 回答
4

没有“新”,您应该将方法标记为静态

于 2012-05-10T20:41:20.430 回答
3

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

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

如果您想在不初始化类的情况下访问方法,请创建 method(s) static。但是,在这样做时,您应该确保这些方法是线程安全的。

于 2012-05-10T20:44:29.267 回答
2

您可以将功能设为静态。

于 2012-05-10T20:42:10.307 回答