在私人class级成员中正确使用关键词“this”是什么?

什么时候应该在C#类定义中使用关键字’this’?

在课堂上使用“this.Method()”forms是否标准? 或者只使用“Method()”? 我已经看过两者,并且通常选择第二种,但我想了解更多有关此主题的信息。

大多数情况下它是多余的,可以省略; 一些例外:

  • 调用一个链式构造函数: Foo() : this("bar") {}
  • 消除局部参数/变量和字段之间的歧义: this.foo = foo; 等等
  • 在当前实例上调用扩展方法: this.SomeMethod(); (定义为public static SomeMethod(this Foo foo) {...}
  • 将对当前实例的引用传递给外部方法: Helper.DoSomething(this);

主要用于在名称不明确时显式使用类成员,如下例所示:

 public class FooBar { private string Foo; private string Bar; public void DoWhatever(string Foo, string Bar) { // use *this* to indicate your class members this.Foo = Foo; this.Bar = Bar; } public void DoSomethingElse() { // Not ambiguity, no need to use *this* to indicate class members Debug.WriteLine(Foo + Bar); } } 

除此之外,有些人更喜欢对内部方法调用(`this.Method()’)进行前缀,因为它更明显地表明你没有调用任何外部方法,但我发现它并不重要。

它肯定对产生的程序效率或多或少没有影响。

我使用’this’当它变成你所引用的ambigious时,它有一个与类变量/方法具有相同/相似名称的局部变量。

但它真的是个人偏好的东西,只需使用你认为最好的东西。

总是…只是我的2美分