调试.NET异步/等待函数时无法检查变量

我有一个使用async/awaitfunction的.NET 4.5项目。

当我尝试在await语句后检查/快速监视变量引用时,我得到以下内容:

The name 'id' does not exist in the current context

知道如何修复这个我可以调试吗?

编辑 – 这是代码

  [Fact] public async Task works_as_expected() { var repo = Config.Ioc.GetInstance<IAsyncRepository>(); var work = Config.Ioc.GetInstance(); Customer c= new Customer() { FirstName = "__Micah", LastName = "__Smith_test", DateCreated = DateTime.Now, DateModified = DateTime.Now, Email = "m@m.com", Phone = "7245551212" }; var id=await repo.Insert(c); // i can't inspect the value of id Assert.True(id > 0); } 

该变量尚不存在,因此无法检查它的价值。 它还没有价值。

从技术上讲,它不会在您到达定义它的代码行之前定义,并且在您初始化它之前它将没有值。 虽然在某些情况下可以在技术上检查变量的值,但在代码中(在不安全的代码之外)永远不能访问该值,因此没有理由去查看它。

至于何时将分配该位置的内存(在调试器中首次可以选择查看它),这将在使用变量之前的最后一次await之后到达第一行之后。