创建对象 c# 的多个实例
本文关键字:实例 创建对象 | 更新日期: 2023-09-27 18:33:29
我正在尝试实现一些东西来多次实例化对象。以下代码用于创建一个 html 侦听器,并希望它们在进程结束之前一直处于活动状态。所以基本上我不想写下 10 次,而是想办法自动创建 10 次。
我试过这个,但听众似乎没有运行。
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;
}
您已经在创建 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() 的多次调用将继续添加到此设计的列表中。
您正在创建对象并将它们放在列表中,但该列表存储在局部变量中。方法结束后,列表将被销毁,对象也会被垃圾回收器销毁。将它们存储在一个始终存在的变量中。