我试图将一个整数值传递给ElapsedEventHandler,这样我就可以根据传入的整数来做逻辑。但是,当引发Event时,进入的值不是我初始化它的值。我可能不完全理解代表的工作方式。
class Example
{
Dictionary<int, Timer> timer;
public Example()
{
timer = new Dictionary<int, timer>();
for(int i = 0; i < 12; ++i)
{
timer.Add(i, new Timer(5000));
timer[i].Elapsed += delegate { TimerTickCustom(i); };
}
}
public void Process() // called each cycle
{
for(int i = 0; i < 12; ++i)
{
timer[i].Start();
}
}
private void TimerTickCustom(int i)
{
// The value of i coming in does not match the dictionary key.
}
}
答案 0 :(得分:1)
取决于委托人将本地值<button id="reset" onclick="resetFields()">Reset Fields</button>
<input id="myID" type="text">
<input id="myID2" type="text">
<span id="mySpan">Some text here</span>
<span id="mySpan2">Some text here</span>
视为&#34;具体&#34;它的范围。由于i
是在循环之外定义的,因此代理人没有定义它自己的&#34; copy&#34;这个变量 - 因为所有代表都期望i
。
您需要做的是将其分配给同一级别的变量&#34;&#34;作为代表本身。
我不确定我是否在这里使用正确的语言来解释它。但这应该有效:
i
如果您知道要在搜索引擎中键入哪些字词,那么会有interesting discussion {当然,除非有人告诉您,否则您无法知道。)