【发布时间】:2009-01-26 10:19:00
【问题描述】:
什么时候应该在 C# 类定义中使用关键字“this”?
在类中使用“this.Method()”形式是标准的吗?还是只使用“Method()”?两者我都看过,通常会选择第二个,但我想了解更多关于这个主题的信息。
【问题讨论】:
什么时候应该在 C# 类定义中使用关键字“this”?
在类中使用“this.Method()”形式是标准的吗?还是只使用“Method()”?两者我都看过,通常会选择第二个,但我想了解更多关于这个主题的信息。
【问题讨论】:
大部分时候是多余的,可以省略;少数例外:
Foo() : this("bar") {}
this.foo = foo; 等this.SomeMethod();(定义为public static SomeMethod(this Foo foo) {...})Helper.DoSomething(this);
【讨论】:
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”,它有一个与类变量/方法具有相同/相似名称的局部变量。
但这真的是个人喜好的事情,就用你觉得最好的吧。
【讨论】:
总是...只是我的 2 美分
【讨论】: