2011-11-05 90 views
4

在C#中可以在構造函數中使用它嗎? (即,它是確定引用在構造函數實例)C#:在構造函數中使用它

舉個簡單的例子:

public class Test{ 

public Test() 
{ 
    Type type = this.GetType() 
} 

} 
+0

是。看看這裏:http://www.codeproject.com/KB/dotnet/ConstructorsInCSharp.aspx – FailedDev

+0

是的......這是正確的 – Nitesh

回答

5

是的,您可以在構造函數中使用this,但不能在字段初始值設定項中使用。

所以這是無效的:

class Foo 
{ 
    private int _bar = this.GetBar(); 

    int GetBar() 
    { 
     return 42; 
    } 
} 

但是,這是可以的:

class Foo 
{ 
    private int _bar; 

    public Foo() 
    { 
     _bar = this.GetBar(); 
    } 

    int GetBar() 
    { 
     return 42; 
    } 
} 
1

您正在尋找這樣的事情?

public class Test{ 

private string strName; 
public Test(string strName) 
{ 
    this.strName = strName; 
} 

} 

我認爲這是很好的在課堂上的每一個部分使用this標識... Atributes,方法,屬性,因爲它可以讓更多的影射到你正在修改或使用,在複雜的類或路數它可以幫助你更快地瞭解你正在使用的內容,但正如我所說的,以我的觀點來看。

+1

'這只是額外的冗長,對我來說沒有任何附加價值,但對於他們自己。 –

+0

是的,它只是像其他保留字如const,readonly,只是對於程序員,以及在我的例子中,當你使用一個完全等於全局屬性/屬性的參數時,它是強制需要的,並且你不會感到困惑你正在使用一個局部變量,一個參數表或一個全局變量和'this'..但是正如你對他們各自所說的那樣 –

+1

我避免用成員變量的下劃線。因爲這個原因,我不喜歡'memberVariable'約定。然後我在方法簽名中碰到碰撞,並且必須在整個地方使用'this'。另外,我不認爲你的意思是說「暗指」。顯式也許? :) –