C# 在foreach循环中重置停留时间?
问题是,C# 在foreach循环中重置停留时间?,c#,foreach,C#,Foreach,问题是,staytime从不转到0,但会发生断开 staytime需要做些什么吗 foreach (var playe in w_server.OnlineConnections) { if (staytime > 1 * 20000 && play.Value.Map == "Rest") { staytime = Server.tickcount.ElapsedMilliseconds; w
staytime
从不转到0
,但会发生断开
staytime
需要做些什么吗
foreach (var playe in w_server.OnlineConnections)
{
if (staytime > 1 * 20000 && play.Value.Map == "Rest")
{
staytime = Server.tickcount.ElapsedMilliseconds;
w_server.Disconnect(play.Value.client.connection);
play.Value.Map = "Village1";
staytime = 0;
}
}
我认为您需要将
foreach
中的变量playe
更改为play
,然后将staytime
值赋值更改为if条件
。当您刚刚为staytime
分配了一个值时,如何使其成为0
foreach (var play in w_server.OnlineConnections)
{
staytime = Server.tickcount.ElapsedMilliseconds;
if (staytime > 1 * 20000 && play.Value.Map == "Rest")
{
w_server.Disconnect(play.Value.client.connection);
play.Value.Map = "Village1";
staytime = 0;
}
}
什么是w_服务器?您正在使用哪个API?在staytime上放置一个断点,以查看它是否是
staytime
的一个字段,即playe
?我假设您在显示的代码之前声明了staytime。此外,您是否认为staytime=Server.tickcount.elapsedmillesons应该在if条件之前?您是否将调试断点放在staytime变量中,以便在使用if(staytime>1*20000&&play.value.Map==“Rest”)进行比较之前查看该变量和play变量的实际值?