1

いくつかのコードを調べていると、次のコードスニペットが見つかりました。この2番目のコンストラクターを確実に理解したいと思います。だから、私がこの正しい理解であることを確認してください:this()

Userがこの2番目のコンストラクターで作成されると、割り当てられたRolesプロパティを常に継承します。これは、Rolesプロパティが2番目のコンストラクター内のどこにも割り当てられていないため、コードの後半で使用されると想定しています。

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 トピックの最後の 2 つのコード スニペットを参照してください。

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

于 2012-12-30T21:07:32.243 に答える
2

構文: this()は、引数を取らないコンストラクターを呼び出します。この場合、例の最初のコンストラクターです。これにより、いずれかのコンストラクターを呼び出すときに Roles が同じ方法で初期化されます。

于 2012-12-30T21:08:16.490 に答える
0

Roles継承されず、単にUserクラスの他のプロパティであることを除いて、あなたの理解は正しいです。

this() MSDN

このキーワードをいつ使うか

于 2012-12-30T21:05:53.743 に答える