我在Model类中有一个带有getter和setter的简单属性
private bool _isThresholdBreached;
public bool IsThresholdBreached
{
get
{
return _isThresholdBreached;
}
set
{
if(_isThresholdBreached == value)
return;
_isThresholdBreached = value;
OnThresholdBreached?.Invoke(this, new EventArgs());
}
}
奇怪的是,在没有setter getter命中的情况下,属性的值会发生变化。我在getter和setter中都设置了一个断点,我看到当连续调用getter时,值已经改变但是setter断点从未命中。这怎么可能呢?请指点。
编辑:我已经验证并且可以确认除了在setter中之外的其他任何地方都没有修改后备字段
答案 0 :(得分:5)
您的财产有一个支持字段。 直接调用该字段的任何代码都会在不调用setter的情况下更新该值(这可以是直接的或通过反射)。
我会从Find usages
的{{1}}开始,然后在解决方案中进行全文搜索。