<分区>
Possible Duplicate:
Why Doesn’t C# Allow Static Methods to Implement an Interface?
在我的应用程序中,我想使用一个将执行原始数据访问的存储库(TestRepository
、SqlRepository
、FlatFileRepository
等)。
因为这样的存储库将在我的应用程序的整个运行时使用,所以对我来说将其设为静态类似乎是明智的,这样我就可以去
SqlRepository.GetTheThingById(5);
无需一直重新生成它。
因为我希望我的存储库可以互换,所以我希望它们实现一个通用接口(interface):IRepository
。
但是当我尝试这样做时,我得到:
Static classes cannot implement interfaces
为什么他们不能? 那你建议我如何改变我的设计?有我可以使用的模式吗?
更新
五年后:这个问题被访问了 20k+ 次,我了解了存储库模式的缺点,了解了 IoC 并意识到我的问题表述不当。
我并不是真的在问接口(interface)的 C# 规范是什么,而是为什么它故意以这种特定方式限制我。
实际的答案是在实例或类型上调用方法的语法是不同的。但问题已经结束。