2010-08-19 133 views
3

可能重複:
When do you use the 「this」 keyword?使用或不使用「this」關鍵字來引用同一個類中的方法有什麼區別?

如果我有下面的例子:

public class MyClass { 

private void MyMethod1() 
{ 
    ... 
} 

private void MyMethod2() 
{ 
    this.MyMethod1(); 
    ... 
} 

}

在 「MyMethod2」 有沒有使用中的差異「this.MyMethod1()」還是「MyMethod1()」?性能,安全性,良好的做法,或其他?我問這個問題,因爲通常我不會使用「this」來調用同一個類中的方法,但是我得到了使用它的其他人開發的代碼......也許我錯了......或者不是!

對不起,看起來像一個愚蠢的問題,但我是「好奇」畢竟。謝謝!

+0

Myclass :: MyMethod1(); – adhanlon 2010-08-19 20:57:26

+1

http://stackoverflow.com/questions/23250/when-do-you-use-the-this-keyword http://stackoverflow.com/questions/1845573/c-using-the-this-keyword-in- this-situation http://stackoverflow.com/questions/843288/c-when-to-use-this-keyword-closed – dtb 2010-08-19 20:58:53

回答

1

不表現,他們會編譯成相同的IL。

關鍵字this的事情是,它沒有局部變量與類成員具有相同的命名。

private void MyMethod2() 
{ 
    Action MyMethod1 = MyMethod2; 
    MyMethod1(); // recursive call to MyMethod2 

    this.MyMethod1(); // call to real MyMethod1 
} 

除此之外,有些人喜歡它,有些人不喜歡。遵循團隊中的代碼標準。

3

在這個特定的例子中沒有區別 - 它會編譯成相同的字節碼。

只有當您想要調用的方法存在與本地變量或參數相同的名稱時纔會有所區別,在這種情況下,您需要編寫this來引用成員而不是局部變量。

0

從執行角度來看沒有區別。正如你所暗示的,有些人使用這個,有些人不這樣做。

使用您認爲正確的標準,除非您被公司標準覆蓋。

相關問題