我正在使用事件的接口(interface)上编写代码契约:
interface EventInterface<T> {
event EventHandler ItemAdded;
bool Add(T item);
}
当一个项目被添加到一个实现该接口(interface)的集合中时,该集合必须引发一个ItemAdded
事件。
只有在添加项目时才必须引发该事件;
这是由返回值给出的(想想一个集合,其中 true
表示该项目已添加,false
表示未添加,因为它已经存在于集合中) .
我希望有一个契约(Contract),确保如果结果为真,将引发一个事件。 同样,如果结果为假,则不会引发任何事件。 有没有办法使用契约(Contract)来检查?
最佳答案
这不是代码契约的设计目的。使用接口(interface)契约,您只能指定有关接口(interface)方法的参数和返回值的详细信息。
您可能想要编写一个包含事件逻辑的抽象基类,或者您可以为此设置一些单元测试。
关于c# - 在引发事件的方法上编写代码契约,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34591107/