使用这个的简单构造函数

时间:2012-12-30 21:01:10

标签: c#

我正在检查一些代码,我发现了这个代码片段,我只是想确定我对第二个构造函数的理解。所以,请确认我对:this()

的正确理解

当使用第二个构造函数创建User时,它将始终继承已分配的Roles属性,因为Roles属性未在第二个构造函数中的任何位置分配。我假设它将在代码中的某处稍后使用。 < / p>

protected User()
{
    Roles = new HashedSet<Role>();
}

public User(string username, string email, string password, string hashAlgorithm)
   : this()
{
    UserName = username;
    Email = email;
    SetPassword(password, hashAlgorithm);
    IsApproved = true;
 }

3 个答案:

答案 0 :(得分:5)

“this()”只是调用第一个构造函数。请参阅以下MSDN主题中的最后两个代码段:

http://msdn.microsoft.com/en-us/library/ms173115.aspx

答案 1 :(得分:2)

语法: this()将调用不带参数的构造函数,在本例中是示例中的第一个构造函数。这可以确保在调用构造函数时,Roles以相同的方式初始化。

答案 2 :(得分:0)

您的理解是正确的,但Roles不是继承的,只是User类的其他属性。

this() MSDN

When do you use this keyword