【问题标题】:Can I make using `this` mandatory in my code?我可以在我的代码中强制使用“this”吗?
【发布时间】:2012-12-09 10:01:35
【问题描述】:

有没有办法告诉 Visual Studio 使当前实例的合格成员具有 this. 强制性?我更喜欢清晰。

详情:

在 C# 中,如果您有实例成员(字段、属性、方法等),通常可以在有或没有 this 的情况下引用它们,例如:

class Foo
{
    private int bar;

    Foo()
    {
        // These two lines are both valid, and both do exactly the same thing
        bar = 42;
        this.bar = 42;
    }
}

在我的编码风格中,我不希望this 是可选的,我希望上面的第一行至少引起警告。显然,这只是出于我自己的目的,我并不想以某种方式标记生成的程序集,要求人们使用也这样做,这纯粹是个人风格的事情。

【问题讨论】:

    标签: c# visual-studio-2010 visual-studio


    【解决方案1】:

    您可以使用Resharper(使用the setting described here)和StyleCop(使用this rule)等程序。

    它们允许您定义自己的编码样式,这些样式会在您的代码中引起验证警告,并提供解决这些问题的建议。

    这是一个关于 resharper 的免费替代品的问题。

    What are some alternatives to resharper?

    【讨论】:

    • 安装 stylecop 时应该强制执行此规则
    • ReSharper 可以选择强制“this”。限定符。见Let Resharper force this keyword on fields
    • 他们都有这个,酷。 (更新了答案。)如果 VS.Net 本身有一些东西,会更喜欢它,但到目前为止它看起来不像。
    • 你是否也对属性和方法强制执行“this”?如果不是:为什么?如果是这样:你不会因为到处都是“this”而把你的代码弄得乱七八糟吗?
    【解决方案2】:

    StyleCop 似乎默认开启了此规则。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-27
      • 2018-11-25
      • 2011-09-05
      • 1970-01-01
      • 2012-07-03
      • 2018-02-09
      • 1970-01-01
      相关资源
      最近更新 更多