1

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

当使用第二个构造函数创建 User 时,它将始终继承分配的 Roles 属性,因为 Roles 属性未在第二个构造函数内的任何地方分配,我假设它留待稍后在代码中的某个地方使用。

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;
 }
4

3 回答 3

5

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

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

于 2012-12-30T21:07:32.243 回答
2

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

于 2012-12-30T21:08:16.490 回答
0

你的理解是正确的,除了Roles不是继承的,只是User类的其他属性。

这() MSDN

你什么时候使用这个关键字

于 2012-12-30T21:05:53.743 回答