小编And*_*hoo的帖子

代码收缩,如果X <Y且Y = Z + 1,为什么X <Z + 1未被证实

我有一份合同,这样做:

for (int i = 0; i < delegateParameterTypes.Length; i++)
{
    Contract.Assert(i < delegateParameterTypes.Length);
    Contract.Assert(delegateParameterTypes.Length == methodParameters.Length + (1));
    // Q.E.D.
    Contract.Assert(i < methodParameters.Length + (1));
}
Run Code Online (Sandbox Code Playgroud)

前两次通过分析很好,但第三次说断言是未经证实的,一个接一个?考虑后卫.这似乎是简单的数学.有什么我想念的吗?

尝试使用字符串数组和本地值似乎工作正常.可能会以某种方式与.Length电话有关吗?我尝试将int交换到UInt16以查看它是否是由于循环中的缓冲区溢出,但事实并非如此.

c# code-contracts

5
推荐指数
1
解决办法
133
查看次数

标签 统计

c# ×1

code-contracts ×1