【发布时间】:2020-06-12 13:35:21
【问题描述】:
我有两种非常相似的方法,除了第二种方法部分扩展了第一种方法的功能。例如方法如下:
private void ExtendTable(FileInfo file, string columnToCopy, string columnNewName)
{
var data = File.ReadAllLines(file.FullName).ToArray();
if (data[1].Contains(columnToCopy))
{
var content = data[0] + Environment.NewLine + data[1] + columnNewName + Environment.NewLine + data[2];
}
}
private void ExtendTable(FileInfo file, string columnToCopy, string columnNewName, string secondColumnToCopy, string secondColumnNewName)
{
var data = File.ReadAllLines(file.FullName).ToArray();
if (data[1].Contains(columnToCopy) && data[1].Contains(secondColumnToCopy))
{
var content = data[0] + Environment.NewLine + data[1] + columnNewName + secondColumnNewName + Environment.NewLine + data[2];
}
}
可以看出,第二种方法稍微扩展了第一种方法的功能。我计划添加将其打印回文件的功能,但是我的问题是这是非常重复的并且违反了 DRY 原则。我如何重构这些方法以减少重复,同时仍确保它们都按预期工作。
谢谢
【问题讨论】:
-
使用可选参数来组合你的两种方法。见here。
标签: c# methods refactoring dry