尝试在调试中查看属性会在时间延迟后给出不同的计数。这是由于延迟执行吗?

Trying to view properties in debug gives different counts after time delay. Is this due to deferred execution?

我在 class 中有以下方法:

public IPlayerInfo GetPlayerInfo(int playerId)
{
    return GetPlayerDetails(playerId).Matches; // Matches have Runs and Wickets list
}

我有一个 class 如下:

public class MyClass
{
  public Lazy<IMyInterface> _service1;

  public MyClass(Lazy<IMyInterface> service1)
  { 
    _serivce1 = service1;
  }

  public void SomeMethod()
  {
    var runsList = _serivce1.GetPlayerInfo(1).Runs; // debugging this line of code
  }
}

当我尝试调试上面的代码时,

当我 运行 没有调试时,_serivce1.GetPlayerInfo(1).Runs(因此 runsList)根本没有 itmes。如果这是由于延迟执行,请告诉我。另外,请告诉我解决方案。

这不是延迟执行,它只是以正常方式快速查看 运行ning 代码。

除了不使用 Quickview 或可能开始使用 OzCode 之外,这种类型的副作用没有 "solution",描述了他们如何规避至少某种副作用。

某处的某物将 Runs 加 1。当你执行 _serivce1.GetPlayerInfo(1).

时,这个东西是 运行

或者(1)找到这个地方,设置断点
或 (2) 在 GetPlayerInfo.
中设置断点 然后在Immediate window.
中写? _serivce1.GetPlayerInfo(1) 与 Quickview 相反,Immediate window 触发断点。

执行 (1) 应该在您的断点处停止执行
而 (2) 允许您调试单步执行,直到找到添加的位置。