何时应在C#类定义中使用关键字“this”?
在课堂上使用“this.Method()”形式是否标准?或者只使用“Method()”?我已经看过了两个,并且通常选择第二个选项,但我想了解更多有关此主题的信息。
答案 0 :(得分:15)
大部分时间都是多余的,可以省略;一些例外:
Foo() : this("bar") {}
this.foo = foo;
等this.SomeMethod();
(定义为public static SomeMethod(this Foo foo) {...}
)Helper.DoSomething(this);
答案 1 :(得分:4)
这个主要用于在名称不明确时显式使用类成员,如下例所示:
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()')进行前缀,因为它更明显地表明你没有调用任何外部方法,但我发现它并不重要。
它对所得到的程序的效率肯定没有影响。
答案 2 :(得分:2)
当它变得与你所引用的相关时,我使用'this',它有一个与类变量/方法具有相同/相似名称的局部变量。
但它真的是个人偏好的东西,只要用你认为最好的东西。
答案 3 :(得分:1)