这个问题是只有我遇到还是每个人都遇到了?每次在lambda表达式中(Enumerable
后面的点号)编写'foreach'块时,它都无法工作:
Action t = ()=>
{
foreach (var item in Enumerable.)
{
}
};
有任何想法为什么它在这种情况下不能正常工作吗?
我有VS 2010 SP1
更新:这不是关于“Enumerable”,而是关于任何对象。我可以尝试编写`new object()`并遇到同样的问题。
这个问题是只有我遇到还是每个人都遇到了?每次在lambda表达式中(Enumerable
后面的点号)编写'foreach'块时,它都无法工作:
Action t = ()=>
{
foreach (var item in Enumerable.)
{
}
};
我可以在使用VS2010 SP1和全新项目时重现该错误:
class Program
{
static void Main(string[] args)
{
Action t = () =>
{
foreach (var item in Enumerable.Range(1, 10))
{
}
};
}
}
删除“.Range(1,10)”并输入“.”,您应该会看到智能感知选项,但是却没有。 但如果您将表达式分配给临时变量,则可以按预期工作。请遵循Hans的建议并提交错误报告。
foreach
的开放和关闭括号,也可以获得智能感知。为了使智能感知起作用,您需要在空格前面输入。foreach
然后()
,然后返回到()
并开始输入var x in
...没有智能感知!
但是,foreach
然后( )
加上一个空格,然后返回到( )
并在(
右侧开始输入...现在您可以获得智能感知。我发现只要不关闭括号,Intellisense 就可以为 foreach 工作。我的习惯是键入 foreach () 然后填充括号。如果我这样做,Intellisense 就无法工作,但是,如果我写 foreach ( 然后是代码,然后是 ),那么它就可以工作。
Action
delegate and lambda expressions的重复问题。 - Hogan