我想爲單身人士創建界面。 但是接口不能禁用公共構造函數並描述靜態方法。如何解決這個問題?如何描述沒有構造函數和靜態方法的c#接口?
2
A
回答
4
基本上,你不能。接口不能包含靜態方法,並且不能對可用的構造函數進行任何約束。
您可能會感興趣我的static interfaces概念,這將允許執行特定的靜態成員的想法是目前 - 但它不會讓你執行一個構造的沒有。
+0
+1對於靜態接口 – 2010-07-09 07:14:35
5
你不能有一個ISingleton
接口有兩個原因:
- 接口不能有靜態 成員
- 接口不能包含 構造
你可以有一個ASingleton
抽象類,如果你喜歡。
+0
錯誤:靜態成員XXX不能成爲標記爲重寫,虛擬或抽象。 – SkyN 2010-07-09 07:26:03
0
正如其他人所說,你不能使用一個接口。你可以做的是創建一個通用的單例類:
public static class Singleton<T> where T : new()
{
public static T Instance { get; private set; }
static Singleton() { Instance = new T(); }
}
這樣你就可以爲所有單例使用一個泛型類。當然,對於不同的類型(可以改變實現實例的接口或派生類),你將不能以不同的方式初始化單例。
相關問題
- 1. Ninject和靜態構造函數方法
- 2. 具有靜態方法和私有構造函數的final類?
- 3. C++靜態庫和構造函數
- 4. C++模板,靜態方法和構造函數
- 5. xUnit runner如何處理具有靜態類構造函數的靜態方法?
- 6. 有沒有更好的方法來僞造靜態類接口?
- 7. Objective C靜態構造函數與動態構造函數
- 8. 有關靜態構造函數,方法和字段
- 9. 構造函數和靜態函數
- 10. 使用沒有類描述符的靜態方法
- 11. 靜態構造方法vs構造函數
- 12. 靜態構造函數的行爲(C#)
- 13. C中的靜態構造函數
- 14. C#實例構造函數與靜態構造函數
- 15. 公共構造函數和靜態構造函數
- 16. 模仿C++靜態構造函數
- 17. 靜態類C#構造函數OOP
- 18. C++線程靜態構造函數
- 19. C#泛型靜態構造函數
- 20. 靜態類沒有構造
- 21. Java - 靜態構造函數
- 22. 靜態構造函數和擴展方法
- 23. 擴展,超級構造函數和靜態方法
- 24. 靜態等級VS.具有私有構造函數和所有靜態屬性和方法的類?
- 25. 靜態導入和構造函數
- 26. 靜態構造函數和繼承
- 27. Assembly.GetCallingAssembly()和靜態構造函數?
- 28. 靜態構造函數和BeforeFieldInit?
- 29. 靜態構造函數和單
- 30. 靜態和默認構造函數
你有問題要問? – Oded 2010-07-09 07:02:35
我必須是一個算命的人來理解這個問題:( – 2010-07-09 07:03:42
你可能想檢查一下 - http://stackoverflow.com/questions/2855245/abstract-base-class-to-force-each-derived-classes-待辦事項 – 2010-07-09 07:03:50