如果else语句执行几乎相同的操作,则如何清理它们

时间:2019-05-16 02:04:30

标签: c# code-cleanup

所以我有很长的C#代码(请原谅我是一个新手,而且它很凌乱),但是我基本上想重复所有步骤,而且还要将文本输出到文件中,如果是-o和文件名( example.txt)在命令行参数中给出。

目前,我已经从else语句中的第一个if语句复制了所有代码,以及用于输出到文件的其他代码。

有没有一种解决方法/不必重复它,而只需参考它,然后添加额外的步骤?

  rawscore   SS1   SS2
1       10    14    16
2       11    15    17
3       12    16    18
4       13    17    19
5       14    18    20

else语句基本上只是在不将结果写入文件的情况下执行相同的操作。

1 个答案:

答案 0 :(得分:1)

很多代码。

您的代码清楚地表明,只要文件存在,大多数步骤是通用的。您可以按以下方式重新组织代码:

  1. 先执行验证
  2. 执行常见步骤
  3. 基于0标志执行特定步骤

我建议将您的代码分解为方法,每种方法都做特定的事情。这样,如果方法名是自描述的,则无需添加条注释来说明要执行的操作。

我已经通过重构为方法checkForOutputGetInputFileFormattedGetSplitWordsGetPlaneFileFormatted为您完成了下面的工作。我把剩下的练习留给你。

我通常建议开发人员的另一件事是清楚地在顶部执行验证。注意,我首先检查文件的存在,如果失败则立即缩短执行。这样就消除了一层嵌套,使您立即清楚地知道提供的文件路径在执行之前必须存在。

GetStationDetails