2016-11-20 80 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

謝謝。我會嘗試這一個。 –

相關問題