【发布时间】:2008-12-10 14:00:32
【问题描述】:
我想重构这个笨拙的方法以使其更具可读性,它有很多嵌套的 IF 来满足我的喜好。
你会如何重构它?
public static void HandleUploadedFile(string filename)
{
try
{
if(IsValidFileFormat(filename)
{
int folderID = GetFolderIDFromFilename(filename);
if(folderID > 0)
{
if(HasNoViruses(filename)
{
if(VerifyFileSize(filename)
{
// file is OK
MoveToSafeFolder(filename);
}
else
{
DeleteFile(filename);
LogError("file size invalid");
}
}
else
{
DeleteFile(filename);
LogError("failed virus test");
}
}
else
{
DeleteFile(filename);
LogError("invalid folder ID");
}
}
else
{
DeleteFile(filename);
LogError("invalid file format");
}
}
catch (Exception ex)
{
LogError("unknown error", ex.Message);
}
finally
{
// do some things
}
}
【问题讨论】:
-
这是什么家庭作业?欺骗stackoverflow.com/questions/348562/…
-
负面反馈只会伤害网站,有一天他们可能会接受。无论如何,这是我要问的问题。赞成票。
-
这个问题似乎是题外话,因为可能属于codereview.stackexchange.com