私はUserという名前のクラスを持っています。クラスには、作成されたすべてのユーザーを格納するリストであるUsersという静的プロパティがあります。ユーザーをインスタンス化するときに自動的にこのリストに追加したいので、これをUserクラスのコンストラクタブロックに含めておきます。C#クラスのインスタンスをリストに格納する方法
私は以下のコードを書いていますが、コンストラクタでユーザーを作成すると、それらはユーザーリストに追加されず、リストは空のままです。
以下は私が書いたコードです。
public class User
{
private static List<User> _users=new List<User>();
private string _name;
public User(string Name)
{
_name=Name;
_users.Add(this);
}
}
私はUserクラスのインスタンスを作成した直後に各ユーザーをリストに追加できます。しかし、私はこれを自動的に行う方法があるかどうかを知りたい。
また、Userクラス内のユーザーリスト、または各ユーザーを作成する基本クラスを持つ方がよいかどうかを知る必要があります。
これは悪い考えです。たとえば、メモリがリークします。 – SLaks
Userクラスの中にUserのリストを保存しようとする理由は何ですか? – peval27
静的リストをUserクラスの中で宣言して、User.Usersのようにアクセスできるようにすることがよりクリーンであると思いました。 もっと良いアイデアを教えてください。さらに、インスタンスがコンストラクタによって作成されると、リストをユーザークラスに追加するにはどうすればいいですか? –