为什么C#VS2017智能感知无法使用var和local函数?

时间:2018-06-21 17:07:29

标签: c# visual-studio-2017 intellisense var c#-7.0

如果我做这样的事情,为什么Intellisense不起作用。

enter image description here

如果我明确声明MyBrowser.document.querySelector(".childmenu[href='./1713363899/ViewLogsPage']").Click

,它确实可以工作

enter image description here

2 个答案:

答案 0 :(得分:2)

问题解决了。解析不完整的代码是一个问题。

您开始的行(foo.)与下面一行的本地函数一起被解析。这会导致无法正确解析本地函数,因此VS不再知道GetFoo是本地函数或它返回Foo

答案 1 :(得分:1)

这可能是Visual Studio中的错误。解决方法是,通过在函数作用域的顶部声明GetFoo,可以使智能感知在这种情况下发挥出色。

void Test()
{
    Foo GetFoo() => new Foo();

    var foo = GetFoo();
    foo.DoThing();

}

Intellisense Working

在将GetFoo声明放在要使用的声明的下面时,我观察到相同的行为,因此顺序似乎很重要。