动态变量名和定时器名

Dynamic variable name and timer name

我需要一个动态变量和计时器名称,让我向您展示我正在尝试实现的示例:

Timer + resultString +_StopTime = DateTime.Parse(labelCurrentTimeValue.Text).Add(Timer_Duration);

resultString 包含按钮的 ID,因为我为多个计时器启动了相同的代码。

我知道我不能那样写代码,我只是想让你了解我正在努力实现的目标。

我也知道我可以使用 "if" 或 "switch case" 但代码会重复,这是我要防止的。

关于同一主题,我也需要类似的东西:

timer + resultString.Enabled = true;

对于我使用的其他控件:

Control[] matches_textBoxTimer = this.Controls.Find("textBoxTimer" + resultString, true);
TextBox textBoxTimer = matches_textBoxTimer[0] as TextBox;

但不幸的是,我不能用计时器做到这一点,所以我也在寻找类似的东西。

最后一点,当我到达该代码时,已经声明了变量 Timer + resultString +_StopTime 以及计时器。

您不能动态创建变量名,c# 是一种强类型语言。尝试查看字典。不过,我不确定您将如何合并这三个部分。

你可以做的是创建一个字典来存储定时器对象,并让字典的键是一个包含定时器名称的字符串。

Dictionary <String, Timer> timers;
timers["timer" + resultString].StopTime = DateTime.Parse(labelCurrentTimeValue.Text).Add(Timer_Duration);

在大多数情况下,您将在 form_load 方法中创建一个计时器。

timers = new Dictionary <String, Timer>();
timers.Add(new Timer(), "timer1");
timers.Add(new Timer(), "timer2");
timers.Add(new Timer(), "timer3");

//Interval set to 1 second between ticks. 
timers["timer1"].Duration = 1000;
timers["timer2"].Duration = 1000;
timers["timer3"].Duration = 1000;

timers["timer1"].Start();
timers["timer2"].Start();
timers["timer3"].Start();