我可以避免初始化吗?
我有一个简单的工厂,没有构造函数。我这样用它:
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);
答案 0 :(得分:8)
让你的班级方法成为静态。
class GenericSelectListFactory
{
public static List<Cars> getCargsl()
{
// your logic here
}
}
答案 1 :(得分:4)
没有“new”你应该把方法标记为静态
答案 2 :(得分:3)
编译器为没有构造函数的类分配了一个默认构造函数,主要是为了消除对空构造函数的需求:
除非该类是静态的,否则C#编译器会为没有构造函数的类提供一个公共默认构造函数,以便启用类实例化。
如果要在不初始化类的情况下访问方法,请创建方法static
。但是,在执行此操作时,应确保方法是线程安全的。
答案 3 :(得分:2)
你可以使这些功能保持静止。