假设我有这个:
[Pure]
public static TimeSpan Seconds(this int i)
{
Contract.Ensures(Contract.Result<TimeSpan>() == TimeSpan.FromSeconds(i));
return TimeSpan.FromSeconds(i);
}
我是否需要以如此严格的方式确保合同的结果,还是这是不必要的?
在这种情况下呢?
[Pure]
public static T IfTrue<T>(this bool b, T value)
{
Contract.Ensures(Contract.Result<T>().Equals(b ? value : default(T)));
return b ? value : default(T);
}
我的问题是:
- 我是否正确地指出了这种精确的合同保障?
- 我是否有义务提供如此严格的合同保障,为什么?
- 如果我的合同保障在应用程序中重复(在许多情况下),
return
语句是否可以重复?
Code Contracts
。 - AgentFirereturn
关键字是否实际起作用。说真的吗?你应该测试特定的值,即使在如此微不足道的方法中,这也是毫无意义的。 - Louis Kottmann