在分配前检查.NET 4.7检查属性值



我才刚刚开始使用resmanper,我要在分配前获得"冗余检查"警告,我想知道运行时是否确实确实检查了平等并跳过重新分配该值。我已经看到了有关不变或原始或复杂价值的其他帖子,以及检查平等与重新分配平等价值的成本所涉及的成本,这不是我的关注。

我担心的是,一个属性上的setter在第二个属性上调用设置器,例如,由于网络调用,第二个设置器的成本很高。如果运行时实际上没有在分配前检查平等,我需要自己做,以防止不必要的第二个设置器运行。如果它确实检查了平等而没有重新分配,我宁愿不进行多余的检查以提高性能和可读性。

那么,.NET 4.7在分配前检查属性值吗?

刚刚使用下面的代码检查,在分配之前,它不会检查平等:

Test t = new Test();
t.MyValue = 1;
t.MyValue = 1;
public class Test
{
    public Test()
    {
        
    }
    private int myValue;
    public int MyValue
    {
        get
        {
            return myValue;
        }
        set
        {
            myValue = value;
            Console.WriteLine($"Setter Called value->{myValue}");
        }
    }
}

输出:

setter称为值 - > 1

setter称为值 - > 1

相关内容

  • 没有找到相关文章

最新更新