0
我使用下面的代碼示例 -多個實例,故障與重疊的變量C#
Program.cs中有客戶的名單:
public static List<Client> clients = new List<Client>();
與點擊的事件處理程序的按鈕1
private void button1_Click(object sender, EventArgs e)
{
Client client = new Client(combobox1.selecteditem);
Program.clients.Add(client);
}
Client.cs
所有變量都是非靜態和公衆。存在如下情況:在數據包接收,一類被稱爲事件處理程序,然後過濾並處理
它被稱爲在下面的代碼這個類:
public void recieved(short op, string str, Client c)
{
switch (op)
{
case (short)OpCodes.matches:
{
c.something(c, str);
break;
}
}
}
Handler.cs
public void something(Client c, string movement)
{
if (movement == null)
c.coords = movement;
c.freeSpot = true;
}
在上面的變量中,變量會重疊,freespot會在所有實例中變爲真。
它會在一個實例中正常工作。但我試圖編譯多個實例。 因此,創建一個button_onclick
將使用上述創建一個新的實例。
程序運行時,它在一個實例上運行完美,但有2+個實例時,MyClass
中的變量開始重疊。有沒有辦法來防止這種情況?
如果您使用的是Visual Studio,請嘗試使用其美妙的調試程序,並通過給它們(例如,唯一生成的ID)跟蹤客戶端的所有不同實例。 – Patashu 2013-04-29 05:11:58
代碼看起來像調用'received(...) '? – 2013-04-29 05:19:37
調用接收的代碼(...)是事件處理程序 – user2309449 2013-04-29 05:24:23