c#中有一些黑魔法代码,您可以在其中定义接口的默认实现。如何在c#中定义接口的默认实现?
所以,你可以写
var instance = new ISomeInterface();
任何指针?
更新1:请注意,我没有问是否这是一个好主意。怎么可能做到这一点。
更新2:给任何人看到接受的答案。
- “这应该只被视为一种好奇心。”来自Marc Gravel "Newing up" Interfaces
- “使用为COM互操作设计的工具完全和完全不同,这是一个糟糕的主意,这会让你的代码无法理解下一个必须维护它的人”Eric Lippert "Newing up" Interfaces
- “虽然它可能有效,但如果它是由有理编码器在生产代码中发现的,它将被重构为使用基类或依赖注入。”来自Stephen Cleary在下面的评论。
一些这方面的文章:HTTP://计算器。 com/questions/1093536 and http://blogs.msdn.com/b/ericlippert/archive/2007/04/20/chained-user-defined-explicit-conversions-in-c-part-three.aspx – 2010-07-18 15:47:27
Is there仍然没有理智的方式来做到这一点? – 2014-01-04 14:53:14
@WilliamJockusch仍然是我认识的唯一一个 – Simon 2014-01-07 09:50:46