有没有办法在实现/派生类中强制实现静态方法?

use*_*312 0 c#

由于接口不包含静态方法,有没有办法使实现/派生类中必须实现静态方法?

如果没有,还有其他方法可以实现这一目标吗?

我实际上使我的所有数据库类看起来像这样:

class MyClass : IMyClass, IPersistant
{
public int ID {get;set}
.....
.....
public int SaveOrUpdate(){}//returns the ID
public static MyClass Get(int id){}
public static IEnumerable<MyClass> Get(){}
public bool Delete(){}
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 6

不,没有.静态方法不是多态的.

目前还没有好办法,真的.您可以使用并行类型层次结构 - 一个用于实例,一个"元"层次结构使用实例方法,否则您将拥有静态类型,但这也非常难看.

如果您可以详细说明您要做的事情,我们可能会提出其他建议.

编辑:看起来你真的想要一个Repository<T>并行层次结构来获取单个项目或集合.