【发布时间】:2010-11-19 16:36:24
【问题描述】:
我已经研究这段代码一段时间了,出于某种原因,所有的 if 和一堆重复的代码都让我发疯了。 有没有更好更清洁的方法来做到这一点?
public Program(string[] args)
{
try
{
WriteToLogFile("Starting ImportTask");
if (args.Length == 0)
{
Import(DateTime.Now,DateTime.Now);
MarkRecordsAsDeleted();
}
else if (args.Length == 1)
{
DateTime dateToImport;
bool isValidDate = DateTime.TryParse(args[0], out dateToImport);
if (isValidDate)
{
Import(dateToImport,dateToImport);
MarkRecordsAsDeleted();
}
else
WriteToLogFile(String.Format("The Import date specified was invalid. - {0}", args[0]));
}
else if (args.Length == 2)
{
DateTime importStartDate;
bool isValidStartDate = DateTime.TryParse(args[0], out importStartDate);
DateTime importEndDate;
bool isValidEndDate = DateTime.TryParse(args[0], out importEndDate);
if (isValidStartDate && isValidEndDate)
{
if (importStartDate > importEndDate)
{
WriteToLogFile(String.Format("Invalid date range provided. Start date = {0} End date {1}",importStartDate,importEndDate));
return;
}
Import(importStartDate, importEndDate);
MarkRecordsAsDeleted();
}
else
WriteToLogFile(String.Format("The Import date specified was invalid. - {0}", args[0]));
}
else
{
WriteToLogFile("Invalid Command Line Parameters Specified");
}
}
catch (Exception ex)
{
WriteToLogFile("Error in Import Process = " + ex.StackTrace);
}
}
【问题讨论】:
-
我强烈建议您始终显示或存储 ex.ToString()。你丢掉了很多好的数据。
-
会的!感谢您的提醒。
标签: refactoring .net-2.0