循环并在每次迭代中创建新的实例对象
本文关键字:创建 实例 对象 迭代 循环 | 更新日期: 2023-09-27 18:15:53
所以我试着做一个循环,每次循环时我都创建一个对象的新实例:像这样。
Client client = new Client(session);
client.Connect(server);
while (true) {
client.SendPacket(new Craft.Net.CreativeInventoryActionPacket(-1, new Craft.Net.ItemStack((short)19, (sbyte)1)));
client.Disconnect ("Generic");
System.Threading.Thread.Sleep(3000);
//obviously I cannot do this, because there is already an object named client.
Client client = new Client(session);
client.Connect(server);
}
我该怎么做呢?我需要做一个新的实例的minecraft客户端,我不能重用旧的一个后,我做client.Disconnect.
最简单的方法就是修改
Client client = new Client(session);
client = new Client(session);
也就是说,我认为有一种更简洁的方法。首先:
while(true) {
Client client = new Client(session);
client.Connect(server);
client.SendPacket (new Craft.Net.CreativeInventoryActionPacket(-1, new Craft.Net.ItemStack((short)19, (sbyte)1)));
client.Disconnect ("Generic");
System.Threading.Thread.Sleep(3000);
}
现在把它分解成一个方法:
private void ConnectAndDoStuff() {
Client client = new Client(session);
client.Connect(server);
client.SendPacket (new Craft.Net.CreativeInventoryActionPacket(-1, new Craft.Net.ItemStack((short)19, (sbyte)1)));
client.Disconnect ("Generic");
System.Threading.Thread.Sleep(3000);
}
然后:
while(true) { this.ConnectAndDoStuff() }
每次重新启动时都在循环中创建实例。
while (true) {
Client client = new Client(session);
client.Connect(server);
client.SendPacket (new Craft.Net.CreativeInventoryActionPacket(-1, new Craft.Net.ItemStack((short)19, (sbyte)1)));
client.Disconnect ("Generic");
System.Threading.Thread.Sleep(3000);
}
如果您只想重新创建client
对象,只需删除Type定义
Client client = new Client(session);
client.Connect(server);
while (true)
{
client.SendPacket (new Craft.Net.CreativeInventoryActionPacket(-1, new Craft.Net.ItemStack((short)19, (sbyte)1)));
client.Disconnect ("Generic");
System.Threading.Thread.Sleep(3000);
client = new Client(session);
client.Connect(server);
}