我有上面的问题。我的代码:
public abstract class BaseFactory<T> where T: class
{
protected static dbModelContainer context = new dbModelContainer();
public static int UpdateDataBase_static()
{
return context.SaveChanges();
}
}
我的问题是如何调用
BaseFactory.UpdateDataBase_static();
而不是:
BaseFactory<SomeClass>.UpdateDataBase_static();
有什么想法吗?
答案 0 :(得分:2)
你不能,因为没有这样的方法。最接近的是具有泛型类继承的非泛型基础。那么你可以在那里有一个不依赖于参数化类型的方法。
答案 1 :(得分:1)
你没有。
在访问类时,您始终需要提供泛型类型参数,即使您未在方法中使用该类型参数。由于不实际上在方法中使用泛型类型,这意味着您可以将该方法移出该类,并将其移动到非泛型类中,但只要它在该类中你需要提供通用参数。
答案 2 :(得分:0)
您无法完全按照自己的要求进行操作,但由于该方法根本不使用T
,因此您只需使用BaseFactory<object>.UpdateDataBase_static();
而无需指定任何特定的课程。
但作为编辑评论,一般来说,从不使用泛型参数的泛型类中的方法可能不应该存在。
答案 3 :(得分:0)
要致电BaseFactory.UpdateDataBase_static();
,您需要一个班级BaseFactory
。从中继承通用BaseFactory<T>
。
public abstract class BaseFactory
{
protected static dbModelContainer context = new dbModelContainer();
public static int UpdateDataBase_static()
{
return context.SaveChanges();
}
}
public abstract class BaseFactory<T>:BaseFactory where T: class
{
....
}