ReSharper自动完成错误?使用lambda scratch参数

时间:2016-03-04 13:57:17

标签: c# lambda autocomplete resharper resharper-9.2

我正在使用ReSharper 9.2。示例代码:

class Foo
{
   private int _someField;
   private int _someOtherField;

   public Foo()
   {
      Action<int, int> a = (_, __) => { };
   }
}

只要在'_'后键入',',R#就会决定真的意味着_someField,而会自动插入 。我在选项&gt;下未选中所有三个选项(符号完成,智能完成和导入完成)。环境&gt; IntelliSense&gt; “自动完成单项”。但我怀疑此功能不是导致该错误的原因,因为有两个字段以_开头,因此建议列表中应该有多个项目。

这也不是因为_被视为魔术角色;如果我将字段命名为xSomeFieldxSomeOtherField并调用临时变量x,我会得到同样的结果。

有没有办法阻止这种情况?

1 个答案:

答案 0 :(得分:1)

当然,我在发布问题后几乎立即发现了自己的解决方法。每个都是妥协意味着在其他地方失去一些功能,所以选择你的毒药:

  1. 选项&gt;环境&gt; IntelliSense&gt; Autopopup&gt; C#:设置两者&#34;预期值在哪里&#34; &#34;字母和数字&#34;到&#34;显示但不预先选择&#34;
  2. 选项&gt;环境&gt; IntelliSense&gt;完成字符&gt; C#&gt;不要完成:添加&#39;,&#39;到列表
  3. 这个错误似乎是R#没有意识到,在这种情况下,你实际上是在命名一个新变量而是应用它的&#34;其中值是预期的&#34;行为。