为什么 C# VS2017 intellisense 不能使用 var 和局部函数?
Why doesn't C# VS2017 intellisense work with var and local functions?
如果我这样做,为什么 Intellisense 不起作用。
如果我明确声明 Foo
,它确实有效
这可能是 visual studio 中的错误。作为解决方法,您可以通过在函数范围的顶部声明 GetFoo 来让智能感知在这种情况下发挥良好的作用。
void Test()
{
Foo GetFoo() => new Foo();
var foo = GetFoo();
foo.DoThing();
}
我观察到将 GetFoo
声明放在我尝试使用它的位置下方时的相同行为,因此顺序似乎很重要。
问题重现。是解析不完整代码的问题
您开始的行 (foo.
) 与下面一行的本地函数一起被解析。这会导致本地函数无法正确解析,因此 VS 不知道 GetFoo
是本地函数还是 returns 是 Foo
.
如果我这样做,为什么 Intellisense 不起作用。
如果我明确声明 Foo
这可能是 visual studio 中的错误。作为解决方法,您可以通过在函数范围的顶部声明 GetFoo 来让智能感知在这种情况下发挥良好的作用。
void Test()
{
Foo GetFoo() => new Foo();
var foo = GetFoo();
foo.DoThing();
}
我观察到将 GetFoo
声明放在我尝试使用它的位置下方时的相同行为,因此顺序似乎很重要。
问题重现。是解析不完整代码的问题
您开始的行 (foo.
) 与下面一行的本地函数一起被解析。这会导致本地函数无法正确解析,因此 VS 不知道 GetFoo
是本地函数还是 returns 是 Foo
.