2011-11-05 89 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'。另外,我不认为你的意思是说“暗指”。显式也许? :) –