调试.NET异步/等待函数时无法检查变量
我有一个使用async/await
function的.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
之后到达第一行之后。