C#3.0中的合同设计

时间:2010-12-01 14:20:03

标签: c#-3.0 design-by-contract

我知道C#4.0具有Code Contract功能,可用于实现后置条件和前置条件。但我只想使用C#3.0实现它。我正在尝试在我的工作中使用此功能。是否可以使用attributes来实现后置条件和前置条件?

有任何建议吗?

感谢。

2 个答案:

答案 0 :(得分:3)

您可以将Code Contracts与C#3和.NET 3.5一起使用。主要区别在于核心类(不是工具)已经内置到.NET 4中。

答案 1 :(得分:0)

我对前置条件和后置条件使用了一个纯粹的Debug.Assert指令,并且我手动编写了一个bool Invariant()函数,我在相关/非平凡的公共方法的进入和退出时调用Debug.Assert(Invariant())

这是手动工作,好的,但它很容易,你很快就习惯了。此外,它允许我非常密切地遵循合同哲学的埃菲尔设计。

相关问题