【问题标题】:Resharper autocompletes the wrong methodResharper 自动完成错误的方法
【发布时间】:2016-01-19 22:20:12
【问题描述】:

Resharper 正确建议并预选了我想要完成的方法的通用版本。但是,在点击“Enter”后,它会自动完成另一种方法。

错误的方法完成

这怎么可能,我该如何解决?

Resharper 10.0.2

Visual Studio 社区 2015 更新 1

团结 5.3.1f1

【问题讨论】:

  • 能否添加您的 R# 版本、Visual Studio 以及您使用的框架版本。
  • 查看 Alexander 的回答(他为 R# 工作):)

标签: visual-studio unity3d resharper


【解决方案1】:

您似乎遇到了与the following YouTrack ticket 中描述的相同的 R# 错误。此类问题已在 R# 10.1 分支中修复,并将在 ReSharper 10.1 版本中提供。

【讨论】:

  • 谢谢,发布的预计到达时间是多少?
  • 我们预计在 4 月发布 R# 10.1。
  • Alexander,resharper 在 aspnet5 项目中为 nunit3 运行单元测试的问题是否会在 10.1 版本中得到修复?
【解决方案2】:

这是您的版本中不存在的错误或功能,但在 R# 9.2 中,行为是您所期望的。

因此,如果您使用的是 R# 10,则可以尝试使用当前许可证降级(或者如果您使用的是较低版本的 R#,则升级,恕我直言,如果我没记错的话,升级到更高版本是免费的) .

顺便说一句,如果 MuhKuh 在 R#10 上是正确的,那么您唯一的选择就是输入“<YourType>”,除非有一个隐藏的配置字段可以返回到旧版行为。

查看here 了解所有可能的版本。

【讨论】:

    【解决方案3】:

    我最近遇到了这个问题,但是在 monodevelop,所以我不认为这是一个错误 - 我设法解决问题的唯一方法是仔细查看您的代码并重命名与您的方法使用相同名称的任何内容(代码可以访问)。

    【讨论】:

      【解决方案4】:

      这不是错误的自动完成。 您在此处看到的是 ReSharper 的 2 个不同功能。

      第一个是自动完成,它向您显示可用的重载。 第二个(在您按 Enter 接受之后)是您输入的参数的最佳候选者。

      我不确定他们使用什么算法,但您可以通过创建 2 个这样的方法来模拟该行为。

      public void Test(int val)
      {
      }
      
      public void Test(string val)
      {
      }
      

      您会注意到,根据您是输入数字还是开始输入 " 作为字符串,弹出窗口将切换到正确的重载。

      【讨论】:

      • 在 9.2 版本中,问题不存在:您选择的就是您得到的,尤其是当有泛型时
      • ReSharper 10 将通用和非通用的分组在同一个项目中,并且不可能选择任何内容,因为列表中只有一个项目。但是,您可以使用“
      【解决方案5】:

      我认为这是正确的智能感知。

      这会将两个条件分开。

      1. map.AddComponent() : 提示 AddComponent(Type) 和 AddComponent(string)

      2. map.AddComponent() : 提示 AddComponent()

      你应该输入 map.AddComponent 来完成它

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多