我想将以下递归函数中的if语句替换为polimorphism。
我看了很多,看了一些youtube视频,但仍然看不到在我的代码中实际执行此操作的方式(为方便起见,本文对此进行了简化)
对我而言,使此任务更困难的是函数开始和递归调用时是否存在foreach语句
谢谢您的帮助
public void FlattenXml(XElement xml, string id = null)
{
var elements = xml.Elements().ToList();
foreach (var element in elements)
{
if (element.Name == "name1")
{
Func1();
}
if (element.Name == "name2")
{
Func2();
}
if (element.Name == "name3")
{
DoSomethingElse();
FlattenXml(content, tempId);
Func3();
}
else
{
DoSomethingCompletelyDifferent();
FlattenXml(element, id);
}
}
xml.Elements("name3").Remove();
}
Run Code Online (Sandbox Code Playgroud)