Coding style Resharper:如何强制在类的底部引入新的私有字段?

Coding style Resharper:如何强制在类的底部引入新的私有字段?,coding-style,resharper,Coding Style,Resharper,当您在构造函数中指定新参数时,Resharper提供了一个非常有用的引入和初始化字段xxx操作,如: Constructor (int parameter) 唯一(次要)的麻烦是,它将新字段放在了课程的开头——我是一个尽可能远离陌生人窥视的隐私部分的粉丝;) 但是,如果类中已经有一些私有字段,Resharper会将新字段“正确”地放在这些字段旁边(注意引号,我不想就此问题展开激烈的争论),即使它们位于类的末尾 有没有办法强迫Resharper总是在课程结束时添加新字段 更新:好的,我忘了提到我

当您在构造函数中指定新参数时,Resharper提供了一个非常有用的引入和初始化字段xxx操作,如:

Constructor (int parameter)
唯一(次要)的麻烦是,它将新字段放在了课程的开头——我是一个尽可能远离陌生人窥视的隐私部分的粉丝;)

但是,如果类中已经有一些私有字段,Resharper会将新字段“正确”地放在这些字段旁边(注意引号,我不想就此问题展开激烈的争论),即使它们位于类的末尾

有没有办法强迫Resharper总是在课程结束时添加新字段

更新:好的,我忘了提到我知道“选项中的类型成员布局”功能,但是一些关于如何修改模板以实现字段放置的具体帮助会很好。

在Resharper选项中使用自定义的“类型成员布局”

在XML布局定义的“默认模式”部分,只需将字段分组的entry元素移动到该部分末尾,在方法、事件、属性等之后。

在“类型成员布局”中,您可以找到并移动以下XML块

<!--fields and constants-->
<Entry>
  <Match>
    <Or>
      <Kind Is="constant"/>
      <Kind Is="field"/>
    </Or>
  </Match>
  <Sort>
    <Kind Order="constant field"/>
    <Static/>
    <Readonly/>
    <Name/>
  </Sort>
</Entry>

到默认模式的底部。基本上,文件底部有两行

    <!--HERE-->

  </Pattern>      
</Patterns>

不幸的是,快速测试表明,这不会影响通过您描述的选项创建的新字段,但会使代码清理将它们移动到正确的位置。(前提是已启用“重新排序类型成员”)


如果您习惯使用公共字段,并且只希望将私有字段移到底部,则将上面的匹配更改为:

<Match>
  <And>
    <Access Is="private"/>
    <Or>
      <Kind Is="constant"/>
      <Kind Is="field"/>
    </Or>
  </And>
</Match>


然后,您可以再次复制整个块,将“Access Is”值更改为“public”,并将新的公共块放在您希望公共字段进入的任何位置—靠近顶部,我猜它最初来自的位置。

如果您还没有,您应该在ReSharper Jira站点提交错误报告:


首先看看是否有人已经报告了这一情况。如果是这样的话,你可以就他们的问题进行投票,如果有任何变化,你会得到通知。

我在提问之前就试过了,得到了与你相同的结果。尽管如此,我还是给了你+1分,谢谢你的努力