2016-02-05 51 views
0

我想實現一些東西來實例化一個對象多次。下面的代碼是創建一個html監聽器,並希望它們一直處於活動狀態直到過程結束。所以基本上我不想寫10次,而是想辦法自動創建10次。創建一個對象的多個實例c#

我試過這個,但聽衆似乎沒有運行。

public static void MultipleProxy() 
{ 
    var proxies = new List<SocksWebProxy>(); 
    for (int i = 1; i <= 10; i++) 
    { 
     proxies.Add(Proxy(i)); 
    } 
} 

public static SocksWebProxy Proxy(int i) 
{ 
    var proxy = new SocksWebProxy(new ProxyConfig(IPAddress.Parse("127.0.0.1"), 7000 + i, IPAddress.Parse("127.0.0.1"), 9000 + i, ProxyConfig.SocksVersion.Five)); 
    return proxy; 
} 
+5

你是什麼意思「啓動對象」? –

回答

4

您已經創建了10個SocksWebProxy實例。這段代碼的問題在於,只要創建它們的方法全部退出,對象就會超出範圍,從而使它們有資格進行垃圾回收。爲了解決這個問題,你可以移動列表例如到課堂範圍。

private static List<SocksWebProxy> proxies = new List<SocksWebProxy>(); 

public static void MultipleProxy() 
{ 
    for (int i = 1; i <= 10; i++) 
    { 
     proxies.Add(Proxy(i)); 
    } 
} 

MultipleProxy()的多次調用將繼續添加到此設計的列表中。

+0

哦,我看到我差點沒事了! :)謝謝埃裏克 –

+0

是的。這是正確的想法。你只需要明白,沒有任何引用它們的對象可以在任何時候消失(垃圾回收)。 –

2

您正在創建對象並將它們放在列表中,但列表存儲在本地變量中。該方法結束後,列表被銷燬,垃圾收集器也銷燬對象。將它們存儲在一個始終存在的變量中。

+0

謝謝塞西莉亞你的回答也很好,但我只能接受一個 –