一千萬個為什麽

搜索

有沒有辦法在實現/派生類中強制實現靜態方法?

因為,一個接口不包含靜態方法,有沒有什麽辦法可以在實現/派生類中強制實現一個靜態方法?

如果沒有,是否有其他方法可以實現這一目標?

我實際上使我的所有數據庫類看起來像這樣:

class MyClass : IMyClass, IPersistant
{
public int ID {get;set}
.....
.....
public int SaveOrUpdate(){}//returns the ID
public static MyClass Get(int id){}
public static IEnumerable Get(){}
public bool Delete(){}
}

最佳答案

不,沒有。靜態方法不是多態的。

真的,目前還沒有很好的辦法。您可以使用並行類型層次結構 - 一個用於實例,一個“元”層次結構使用實例方法,否則您將擁有靜態類型,但這也非常難看。

如果您可以詳細說明您要做的事情,我們可能會提出其他建議。

EDIT: It looks like you really want a Repository parallel hierarchy for fetching individual items or collections.

轉載註明原文: 有沒有辦法在實現/派生類中強制實現靜態方法?