所以,我有一个班级Dictionary<string,System.Timers.Timer>
名为&#34; 计时器&#34;我在课堂上有一个方法可以访问&#34; 计时器&#34;字段:
public static void Save(FastColoredTextBox editor) //this works fine
{
timers[(string)editor.Tag].Dispose();
timers[(string)editor.Tag] = new Timer(Timeout*1000) { AutoReset = false };
timers[(string)editor.Tag].Elapsed += TimerElapsed;
timers[(string)editor.Tag].Start();
}
如您所见,我使用timers[(string)editor.Tag]
,因为当我设置这样的变量时:
public static void Save(FastColoredTextBox editor) //doesn't modify the Dictionary
{
var timer = timers[(string) editor.Tag];
timer.Dispose();
timer = new Timer(Timeout*1000) { AutoReset = false };
timer.Elapsed += TimerElapsed;
timer.Start();
}
&#34;的计时器&#34;被声明为局部变量,并且不会修改Dictionary
。
那么,我可以设置一个局部变量,如&#34; 计时器&#34;在第二个示例中,将修改类字段Dictionary
,还是必须使用第一个示例中的直接访问方法?