编写提高事件方法的代码契约

时间:2016-01-04 12:24:02

标签: c# events code-contracts

我在使用事件的接口上编写代码契约:

interface EventInterface<T> {
    event EventHandler ItemAdded;
    bool Add(T item);
}

将项目添加到实现接口的集合时,集合必须引发ItemAdded事件。 只有在添加项目时才能引发事件; 这是由返回值给出的(想象一个集合,其中true表示项目已添加,false表示它没有被添加,因为它已经存在于集合中)。

我希望签订一份合同,确保如果结果为真,则会引发一个事件。 同样,如果结果为假,则不会引发任何事件。 有没有办法检查使用合同?

1 个答案:

答案 0 :(得分:1)

这不是代码合同的目的。使用接口合约,您只能指定有关接口方法的参数返回值的详细信息。

您可能想要编写一个包含事件逻辑的抽象基类,或者您可以为此设置一些单元测试