【问题标题】:Why Visual Studio IntelliSense is not working here?为什么 Visual Studio IntelliSense 在这里不起作用?
【发布时间】:2011-09-30 14:14:05
【问题描述】:

它不只对我或所有人都有效吗?每次我在 lambda 中编写“foreach”块时它都不起作用(Enumerable 之后的点):

Action t = ()=>
{
    foreach (var item in Enumerable.)
    {

    }
};

知道为什么它在这种情况下不起作用吗?

我有 VS 2010 SP1

更新:这不是关于Enumerable,而是关于任何对象。我可以尝试写new object(). 也有同样的问题。

【问题讨论】:

  • 在哪里?我的意思是写类似'Enumerable.Range(1, 10)'
  • 在 IntelliSense 解析器上工作的人在这里回答您的问题的可能性非常小。发布到 connect.microsoft.com 以获得更好的机会。
  • 你能给我直接链接吗?我只在 social.msdn.microsoft.com 上找到了 Visual Studio 论坛,在 connect.microsoft.com 上找不到任何有用的东西

标签: c# visual-studio visual-studio-2010 intellisense


【解决方案1】:

我可以用 VS2010 SP1 和一个全新的项目重现该错误:

class Program
{
    static void Main(string[] args)
    {
        Action t = () =>
        {
            foreach (var item in Enumerable.Range(1, 10))
            {
            }
        };
    }
}

删除“.Range(1, 10)”并输入“.”您应该会看到 Intellisense 选项,但没有。但是,如果您将表达式分配给临时变量,它会按预期工作。遵循 Hans 的建议并提交错误报告。

【讨论】:

  • 投票我可以复制它。
【解决方案2】:

即使您键入 foreach 的左括号和右括号,您也可以获得智能感知。要使智能感知正常工作,您需要在空白前输入。

例如: foreach 然后() 然后回到() 并开始输入var x in ...没有智能! 但是,foreach 然后( ) 加一个空格,然后返回到( ) 并在( 之后开始输入...现在你得到了智能感知。

这是 C# 设置的行为。不确定其他语言的设置。

【讨论】:

    【解决方案3】:

    我发现,只要您不关闭括号,智能感知就适用于 foreach。我的习惯是输入foreach(),然后填上括号。如果我这样做智能感知不起作用,但是,如果我编写 foreach(然后是代码,然后),那么它就可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-19
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      • 2013-05-16
      • 2019-02-10
      • 2017-10-11
      相关资源
      最近更新 更多