【问题标题】:Auto add 'this' identifier when auto completing in visual studio在 Visual Studio 中自动完成时自动添加“this”标识符
【发布时间】:2012-05-22 17:13:58
【问题描述】:

我使用StyleCop 中的一组自定义规则以及它的 ReSharper 插件在我键入时自动检查我的代码。

StyleCop 中的规则SA1101 规定,对当前类成员的调用需要以this. 开头,以表明它实际上是在当前类中定义的。

有没有办法设置它,所以当我去自动完成班级成员时,它会自动添加 this. 前缀,所以我不必记住如何输入或添加它之后呢?

让我们以public bool Running { get; set; } 为例:

我输入“Run”+Tab,现在输出为Running,但我希望输出为this.Running

这将节省大量时间和打字。

编辑

请注意,resharper 中的选项 ReSharper => Options => Code Editing => C# => Formatting Style => Other => "Force 'this.' qualifier for instance member"(如 Jon 所述)无法按预期工作。在语句末尾添加; 时(这是可以接受的),或者在将this. 添加到类成员的选项卡之后。

【问题讨论】:

  • 这条规则适用于您的编码风格吗?我能想到始终使用this 限定成员的唯一原因是避免名称与方法参数冲突,即,您有一个支持字段name 和一个方法参数name。但是,如果您对成员变量的风格类似于_name,那么到处使用this只会使代码IMO混乱。
  • 不想成为一个聪明人,但如果你自己经历并添加前缀,它可能会节省你的时间。
  • @EdS.:请注意,该规则适用于 current 类的成员,而不是其任何基类的成员。因此,如果您始终使用和省略它,它确实提供了一定程度的信息。
  • @Jon:一致性总是好的,是的,但是除了我之前提到的之外,它还有什么用途?它是否真的帮助您知道如果您看到this,那么该成员是在当前类中定义的?我只是不认为这很有用,尤其是在 Visual Studio 中,它可以简单地跟踪代码并找到定义和覆盖的地方。

标签: c# visual-studio-2010 resharper


【解决方案1】:

如果你去

ReSharper => Options => Code Editing => C# => Formatting Style => Other

有一个选项叫做 "Force 'this.'实例成员的限定符”

启用它应该会如您所愿。

【讨论】:

  • 试过了,在我的语句末尾添加;,或者在标签之后,它不会更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
  • 2017-04-20
  • 1970-01-01
  • 1970-01-01
  • 2010-09-29
  • 1970-01-01
相关资源
最近更新 更多