1

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

class Foo
{
   private int _someField;
   private int _someOtherField;

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

只要我在 '_' 之后键入 ',',R# 就决定我必须是真正的意思_someField,并自动插入它。我在“选项”>“环境”>“智能感知”>“自动完成单个项目”下未选中所有三个选项(符号完成、智能完成和导入完成)。但我怀疑此功能不是导致错误的原因,因为有 2 个以 开头的字段_,因此建议列表中应该有多个项目。

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

有什么办法可以防止这种情况发生吗?

4

1 回答 1

1

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

  1. Options > Environment > IntelliSense > Autopopup > C#:将 Where value is expected”“Letters and digits”设置为“Display but do not preselect”
  2. 选项 > 环境 > 智能感知 > 完成字符 > C# > 不完成:将“,”添加到列表中

错误似乎是 R# 没有意识到,在这种情况下,您实际上是在命名一个新变量,而是应用其“预期值”行为。

于 2016-03-04T14:15:41.030 回答