合同要求和日期时间
本文关键字:时间 日期 求和 合同 | 更新日期: 2023-09-27 17:57:08
>我有以下方法:
private static void SampleMethod(DateTime dateTime1, DateTime dateTime2)
{
Contract.Requires(dateTime1 > dateTime2);
Console.WriteLine("date 1 > date 2");
}
SampleMethod(DateTime.Today, DateTime.Today.AddDays(1));
当我在启用静态检查的情况下构建它时,我收到警告CodeContracts: requires unproven: dateTime1 > dateTime2
请注意,动态检查对我来说工作正常,它只是我遇到问题的静态检查。
我该如何证明这一断言,或者抑制警告?
编辑:
我正在阅读有关 ContractVerificationAttribute 的信息,如果我将[ContractVefirication(false)
添加到方法中,它没有区别(我怀疑这可能是一个错误),但将其添加到类中将正确关闭整个类的静态检查。 我仍在寻找一种方法来关闭该静态检查 不过需要。
静态验证器有其局限性,有时您必须提供帮助。它对数值数学的理解有限,但DateTime似乎超出了它的范围。
这就是Contract.Assume(bool)
存在的原因:
DateTime d1 = DateTime.Today;
DateTime d2 = d1.AddDays(-7);
Contract.Assume(d1 > d2);
SampleMethod(d1, d2);
代码合约:已检查 4 个断言:4 个正确