0

在 ReSharper 中,如果我对一个类使用“实现接口”操作,它会创建一个名为 Implementation of IInterface. 但是,如果我手动实现接口然后运行代码清理,它会将我的接口成员包装在一个名为IInterface Members.

为什么它使用两种不同的命名约定?如果有办法标准化这个?

4

1 回答 1

1

根据Reordering Type Members的 R# 文档,代码清理应重新排序并将实现的接口包装在命名区域中:

R# ImplementsInterface XML 规则

此 XML 代码匹配实现接口的成员,用区域包围它们,并按实现的接口的名称进行排序。${ImplementsInterface} 变量包含正在实现的接口的名称。如果您不想在接口实现周围插入区域,请删除 Group 标签,ReSharper 将根据成员正在实现的接口的名称对成员进行排序。

检查您的设置,看看您是否可能覆盖了默认行为。另一方面,我没有亲自测试代码清理与重新排序和区域包装,所以这是一个最好的猜测。但是,希望它可以为您指明正确的方向。

编辑
更详细地查看文档并使用 R# 探索所有可编辑模板后,我认为没有办法编辑区域标签的文本。

我反编译JetBrains.ReSharper.Feature.Services.CSharp.dll并发现了我认为是该地区标签的来源:

  • 命名空间:JetBrains.ReSharper.Feature.Services.CSharp.Generate
  • 班级:CSharpGeneratorContext
  • 方法:InsertWithRegionsCSharpGeneratorContext

这两种方法都将字符串"Implementation of " + <some code>嵌入到 dll 中,因此您似乎无法编辑默认文本。

于 2013-04-24T18:51:53.157 回答