.net 契约。不通过静态验证器检查
我正在试验代码契约,遇到了一个问题。我有课:.net 契约。不通过静态验证器检查,.net,code-contracts,.net,Code Contracts,我正在试验代码契约,遇到了一个问题。我有课: public class SpecialPoint { public int X { get; set; } public int Y { get; set; } public SpecialPoint(int x, int y) { Contract.Requires<ArgumentException>(y > x); X = x; Y = y;
public class SpecialPoint
{
public int X { get; set; }
public int Y { get; set; }
public SpecialPoint(int x, int y)
{
Contract.Requires<ArgumentException>(y > x);
X = x;
Y = y;
}
[ContractInvariantMethod]
private void ClassContract()
{
Contract.Invariant(Y > X);
}
}
我希望静态检查器警告我分配p.X=30;因为这违反了不变量,但它只在运行时发生。
我有静态分析功能。我的版本是1.7.11202.10。来自
在运行时检查期间,在每个公共方法的末尾检查不变量
[TestFixture]
class SpecialPointTests
{
[Test]
public void SpecialPoint()
{
var p = new SpecialPoint(10, 20);
p.X = 30;
}
}