【发布时间】:2009-10-15 11:28:02
【问题描述】:
.NET 4.0 具有新的代码协定功能。它也适用于接口,如此处所述(向下滚动到 cmets 中的某个位置):
现在我的问题是,我们是否可以通过将更多自定义代码放入这些合约类来实现某些 MixIns 功能来使用和滥用这个“默认接口实现功能”?
【问题讨论】:
-
cmets 中没有任何内容表明它可以在接口上工作。
.NET 4.0 具有新的代码协定功能。它也适用于接口,如此处所述(向下滚动到 cmets 中的某个位置):
现在我的问题是,我们是否可以通过将更多自定义代码放入这些合约类来实现某些 MixIns 功能来使用和滥用这个“默认接口实现功能”?
【问题讨论】:
我不这么认为。在为接口定义代码契约时,您可以添加一个包含“requires”和“ensures”方法调用的 rela 类,这些方法调用将被添加到实现方法中,但代码重写器只会在编译器完成其工作后运行(即抱怨接口方法没有被类实现...)
可能会被滥用来实现方面,但 :-)
无论如何,我不认为代码重写器会添加除了需要和确保方法之外的任何其他内容。并且代码不会添加到发布程序集中,只会添加到调试程序集中。
【讨论】: