如何重构相似但不相同的方法,其中一种方法扩展了另一种方法的功能? C#

问题描述 投票:0回答:1

我有两个方法非常相似,因为第二种方法部分地扩展了第一种方法的功能。例如,方法如下:

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原则。我如何重构这些方法,以减少重复,同时仍确保它们都能按预期工作。

谢谢

c# methods refactoring dry
1个回答
0
投票

您还可以使用默认参数来实现一种方法。

if (data[1].Contains(secondColumnToCopy)) 
{
    if (data[1].Contains(columnToCopy))
    {
         var content = data[0] + Environment.NewLine + data[1] + columnNewName + secondColumnNewName + Environment.NewLine + data[2];}
    }
    else
    {

    }
© www.soinside.com 2019 - 2024. All rights reserved.