Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 契约。不通过静态验证器检查_.net_Code Contracts - Fatal编程技术网

.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;
    }
}