在私人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美分