2016-11-20 92 views
0

我有一个名为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类中的用户列表,或者创建每个用户的基类。

+3

这是一个坏主意。例如,它会泄漏内存。 – SLaks

+1

你试图在用户类中存储用户列表的任何原因? – peval27

+0

我认为在User类中声明静态列表会更清晰,因此它可以像User.Users一样访问。 请让我知道什么是更好的主意,另外,一旦实例由构造函数创建,我如何将用户添加到列表中(无论列表是否在User类中)。 –

回答

0

我建议使用标准方式来保存已创建用户的引用。

public class User 
{ 
    private string _name; 

    public User(string Name) 
    { 
     _name = Name; 
    } 
} 

var users = new List<User>(); 
users.Add(new User("foo")); 
users.Add(new User("bar")); 

Console.Writeline(users.Count); // this will say 2! 
// you can now use your list of users. 
+0

谢谢。我会尝试这一个。 –

相关问题