0
我写一个简单的2D物理引擎,我已经重写==我Vector2结构如下:代码契约自定义==断言错误
[Pure]
public static bool operator ==(Vector2 v1, Vector2 v2)
{
Contract.Ensures(Contract.Result<bool>() == (v1.x == v2.x && v1.y == v2.y));
return v1.x == v2.x && v1.y == v2.y;
}
然而,当我走在合同中使用。我得到以下结果:
public Vector2 Position
{
get
{
Contract.Ensures(Contract.Result<Vector2>() == position);
Contract.Assert(position == position); // Assert unproven: position == position
return position;
}
}
我添加了assert作为一种调试方式。位置只是一个私有的Vector2字段,它由结构中唯一的Circle构造函数设置。 Vector2本身就是一个结构体。