3

环境: Microsoft Visual Studio Premium 2012 版本 11.0.60610.01 更新 3 Microsoft .NET Framework 版本 4.5.50709

(这个问题以前是关于表达式的,但我已经在更简单的场景中隔离了这个问题,显示了同样的问题,所以为了简单起见,我重写了这个问题。)

我发现如果方法在委托之后包含任何参数,则 Intellisense 不适用于使用泛型方法类型的 lambda。这个复杂的句子更容易写成 Intellisense 停止工作的条件列表。

  • 方法具有泛型类型参数,例如,Working<T>(...)
  • 方法的参数之一是使用方法泛型类型的委托,例如,Action<T>
  • 该方法包含一个在委托之后列出的参数,例如NotWorking<T>(Action<T> action, String x). 委托后的参数类型不相关。

(临时)解决方法:

如果您提前编写所有参数,智能感知将适用于该项目。

因此,如果您编写NotWorking<Person>(p=>p然后不是键入句点来打开 IntelliSense,而是编写两个逗号,就好像您要“跳过”参数一样。你应该得到这样的东西:NotWorking<Person>(p=>p,,)

考虑所有参数后,返回p=>p并键入一个句点。现在 IS 可以工作了。

由于该类型在编译时已知(明确给出),我猜这是一个 VS/IS 错误,所以我将它提交给 MS Connect

4

0 回答 0