格式化C#中属性的Resharper支持字段

Dav*_*and 10 c# resharper

所以这是2年前Keith Nicholas的问题的后续跟进:

格式化C#中属性的Resharper支持字段

我猜这可能涉及自定义类型成员布局.有没有办法在最新的Resharper版本(截至目前,它是5.1)呢?

Lak*_*eld 7

9.1版有一个新选项:

Resharper>选项>代码编辑>将支持字段放在属性上方

https://youtrack.jetbrains.com/issue/RSRP-411980#comment=27-961304


Han*_*man 0

当然,至少在 Resharper 5.1.1727 中您可以添加如下所示的条目

<!--fields-->
<Entry>
  <Match>
      <Kind Is="field"/>
  </Match>
  <Sort>
    <Static/>
    <Readonly/>
    <Name/>
  </Sort>
</Entry>
Run Code Online (Sandbox Code Playgroud)

到类型成员布局以指示您希望支持字段出现在类中的位置。

例如,如果您希望字段位于类的底部,则将该部分作为默认模式部分中的最后一个条目插入:

  <!--Default pattern-->
  <Pattern>
Run Code Online (Sandbox Code Playgroud)

Resharper 5.1 附带一个默认条目,其中包括字段:

<!--fields and constants-->
<Entry>
  <Match>
    <Or>
      <Kind Is="constant"/>
      <Kind Is="field"/>
      <Kind Is="event"/>
    </Or>
  </Match>
  <Sort>
    <Kind Order="constant field"/>
    <Static/>
    <Readonly/>
    <Name/>
  </Sort>
</Entry>
Run Code Online (Sandbox Code Playgroud)

这样它就不会与您的新规则冲突,请从默认条目中删除字段,例如

<!--events and constants-->
<Entry>
  <Match>
    <Or>
      <Kind Is="constant"/>
      <Kind Is="event"/>
    </Or>
  </Match>
  <Sort>
    <Kind Order="constant event"/>
    <Static/>
    <Readonly/>
    <Name/>
  </Sort>
</Entry>
Run Code Online (Sandbox Code Playgroud)

  • 是的,我目前正在执行此操作(将所有字段放在一起),但我希望每个支持字段都位于与其关联的属性的正上方。 (3认同)