【问题标题】:VS: cursor position when override method is generatedVS:生成覆盖方法时的光标位置
【发布时间】:2010-09-28 18:15:51
【问题描述】:

我的光标(管道)在子类的主体内。

public class BarContext : FooContext {
    |
}

我键入“覆盖”并按 Tab 键查看 FooContext 中我可以覆盖的方法列表。 “上下文”是选项之一,所以我选择它。

public class BarContext : FooContext {
    protected override void Context() {
        |base.Context();
    }
}

VS 为我生成了覆盖方法,并将我的光标(同样是管道)放在调用基方法之前。

我怎样才能让 VS 完成我的光标基本方法调用之后(或在它下面的新行上)——但仍然在覆盖方法内,当然?

【问题讨论】:

  • 虽然这不是一个问题的答案,但我想我应该注意到这不是 ReSharper 功能,而是 VS 原生功能:)
  • 过失。我已经更正了这个问题。

标签: c# code-generation cursor-position resharper-5.x


【解决方案1】:

正如 Ilya 正确指出的那样,您所展示的是 Visual Studio 的默认行为。

您可以通过以下方式使用 ReSharper 做您想做的事情。

转到 ReSharper > 选项 > 语言 > 通用 > 成员生成,并确保“生成的成员默认正文样式”设置为“返回默认值”。这将强制 ReSharper 在被覆盖的方法中生成基本调用。

一旦您拥有从基类派生的继承类声明,请按 Alt+Ins 并在弹出菜单中选择“覆盖成员”。 选择要覆盖的成员(除了基类的方法之外,还会有 Object 方法),然后单击 Finish。

因此,ReSharper 将生成带有基本调用的覆盖方法,并且在第一个基本调用之后立即生成插入符号。

【讨论】:

    【解决方案2】:

    我不知道如何改变这种行为。

    之后习惯按 END > ENTER 即可。 :)

    【讨论】:

    • 我也可以按 Ctrl-Enter 在下面创建一个新的空行,并让我的光标从“base”之前自动移动。到紧接下方,在新的空行上。
    猜你喜欢
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    • 2011-04-19
    • 2011-11-30
    相关资源
    最近更新 更多