是否有代码契约之外的替代方案来声明编码假设?



我使用代码契约。我喜欢代码契约。然而,c#的代码契约远非完美。与他们有关的大多数问题,我都能够巧妙地绕开,或者用政策来软化。仍然……有几个部分让我畏缩(例如,必须为抽象实现ContractClasses)。

我找到的唯一真正的替代方案是一个不比CC好多少的开源库,并使用常规保护(这可能违反LSP)。

有没有我错过的更好的选择?我问不是出于绝望,而只是想知道我所有的选择。

我不知道你目前有任何其他选择。

然而,在GitHub上的Roslyn存储库上有一个关于在c#中为代码契约提供语言级支持的讨论。这个问题被认为是有一些兴趣的(尽管不是强烈的兴趣),可以包含在c# 7的特性集中。

关于LSP的主题,在那个特定的讨论中没有提到它。例如,在专门化虚方法时,没有提到强化后置条件和弱化前置条件的可能性。

最新更新