我创建了一个时间计算器,这样有人可以24小时时间格式在文本框中输入开始时间,在另一个文本框中输入结束时间,它将计算差异并在标签中显示。
如何使我的代码执行相同的操作,但使用循环?我只想缩短代码,而不是每周的每一天都有一段代码,如下所示只是星期一和星期二的代码。
//Monday
TimeSpan Mon1In, Mon1Out;
if (!TimeSpan.TryParse(TextBoxInMon1.Text, out Mon1In))
Mon1In = default(TimeSpan);
if (!TimeSpan.TryParse(TextBoxOutMon1.Text, out Mon1Out))
Mon1Out = default(TimeSpan);
MonLabel1.Text = (Mon1Out - Mon1In).TotalHours.ToString("f2");
//Tuesday
TimeSpan Tues1In, Tues1Out;
if (!TimeSpan.TryParse(TextBoxInTues1.Text, out Tues1In))
Tues1In = default(TimeSpan);
if (!TimeSpan.TryParse(TextBoxOutTues1.Text, out Tues1Out))
Tues1Out = default(TimeSpan);
TuesLabel1.Text = (Tues1Out - Tues1In).TotalHours.ToString("f2");
答案 0 :(得分:2)
你可以做一个功能。这称为refactoring。
private void GetTimeValues(TextBox txtIn, TextBox txtOut,
out TimeSpan inTime, out Timespan outTime)
{
if (!TimeSpan.TryParse(txtIn.Text, out inTime))
inTime = default(TimeSpan);
if (!TimeSpan.TryParse(txtOut.Text, out outTime))
outTime = default(TimeSpan);
}
然后调用该函数并设置标签。
TimeSpan Mon1In, Mon1Out;
GetTimeValues(TextBoxInMon1, TextBoxOutMon1, out Mon1In, out Mon1Out);
MonLabel1.Text = (Mon1Out - Mon1In).TotalHours.ToString("f2");
您应该使用更具描述性的功能名称,这只是我想到的第一件事。
您也可以在函数中包含标签逻辑,只需以相同的方式处理信息。