2009-01-26 96 views

回答

15

大部分時間它是多餘的,可以省略;有一些例外:

  • 調用鏈構造:Foo() : this("bar") {}
  • 到本地參數/變量和場間的歧義:this.foo = foo;
  • 調用一個擴展方法對當前實例:this.SomeMethod(); (其中定義爲public static SomeMethod(this Foo foo) {...}
  • 將當前實例的引用傳遞給外部方法:Helper.DoSomething(this);
1

總是......只是我的2美分

2

我使用'this'當它變得模糊不清你所指的是什麼,它有一個局部變量與類變量/方法具有相同/相似的名稱。

但它確實是一個個人喜好的事情,只是使用你覺得是最好的。

+0

我95%的時間都傾向於不使用「這個」。但後來我開始懷疑我是否錯過了一些東西。我總是可以肯定在SO上澄清這些事情。 – 2009-01-26 10:27:15

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()'),因爲它更明顯地表明你沒有調用任何外部方法,但我不覺得它很重要。

它對所得到的程序效率或多或少沒有影響。

相關問題