9

async/await我有一个正在使用功能的 .NET 4.5 项目。

当我尝试在等待语句之后检查/快速观察变量引用时,我得到以下信息:

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

知道如何解决这个问题,以便我可以调试它?

编辑 - 这是代码

    [Fact]
    public async Task works_as_expected()
    {
        var repo = Config.Ioc.GetInstance<IAsyncRepository<Customer>>();

        var work = Config.Ioc.GetInstance<IUnitOfWork>();
        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);
    }
4

1 回答 1

-2

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

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

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

于 2013-02-27T15:45:09.327 回答