【发布时间】:2011-03-17 07:40:45
【问题描述】:
c#中有一些黑魔法代码,您可以在其中定义接口的默认实现。
所以你可以写
var instance = new ISomeInterface();
任何指针?
更新 1:请注意,我没有问这是否是个好主意。怎么可能做到。
更新 2:任何看到已接受答案的人。
- “这应该仅仅被视为一种好奇心。”来自 Marc Gravel "Newing up" Interfaces
- “使用专为 COM 互操作设计的工具来做完全不同的事情是个坏主意。这会使下一个必须维护它的人无法理解你的代码”来自 Eric Lippert "Newing up" Interfaces
- “虽然它可能有效,但如果理性编码人员在生产代码中发现它,它将被重构为使用基类或依赖注入。”来自 Stephen Cleary 在下面的评论中。
【问题讨论】:
-
还有没有理智的方法可以做到这一点?
-
@WilliamJockusch 仍然是我所知道的唯一一个
标签: .net inheritance interface