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