この質問は、私が尋ねた(そして回答された)以前の質問の拡張です。コードをリファクタリングして、さまざまなリファクタリングされたソリューションをいじったり実験したりしています。
私が思いついた解決策の 1 つ (しかし満足できませんでした..覚えておいてください、私はいくつかの個人的なコーディング スタイルを試しているだけです) は次のコードでした:-
if (data is ITagElement)
{
if (((ITagElement) data).TagList.IsNullOrEmpty())
{
((ITagElement) data).TagList = new List<Tag>();
}
((ITagElement) data).TagList.Add(new Tag
{
K = xmlReader.GetAttribute("k"),
V = xmlReader.GetAttribute("v")
});
}
data
親オブジェクトを何度も実装するインターフェイス タイプにキャストしていることに注意してください。コードは機能しますが、これはコードの匂いのように感じます->あまり効率的ではありません。私はこれを改善して唱えることができると思います - そこにいるグルからの考えはありますか?