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变量的实际值?