环境: Microsoft Visual Studio Premium 2012 版本11.0.60610.01更新3 Microsoft .NET Framework 版本4.5.50709
(这个问题以前是关于Expression的,但是我在更简单的场景中将问题分离出来,显示了同样的问题,所以为了简单起见,我重写了这个问题。)
我发现如果方法在委托之后包含任何参数,则Intellisense不适用于使用泛型方法类型的lambdas。这个复杂的句子更容易写成Intellisense停止工作的条件列表。
Working<T>(...)
Action<T>
NotWorking<T>(Action<T> action, String x)
。委托之后的参数类型不相关。(临时)解决方法:
如果您事先写完所有参数,Intellisense将适用于该项目。
因此,如果您编写NotWorking<Person>(p=>p
然后输入一个句点来打开IntelliSense,请编写两个逗号,就好像您想要“跳过”参数一样。你应该得到这样的东西:NotWorking<Person>(p=>p,,)
当考虑所有参数时,返回p=>p
并输入句点。现在IS会工作。
由于类型在编译时是已知的(显式给出),我猜这是一个VS / IS错误,所以我filed it with MS Connect。