这个问题是对previous question i asked的扩展(并得到了回答)。我正在重构代码,尝试/尝试各种重构解决方案。

我想到的一种解决方案(但不满意..记住,我只是在尝试一些个人编码样式),并附有以下代码:-

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强制转换为它隐含的接口(interface)类型很多次?代码可以工作,但是我感觉这是代码的味道->效率不是很高。我觉得这可以改善-来自任何一位大师的想法吗?

最佳答案

那怎么办,所以您只进行一次转换:

ITagElement someData = data as ITagElement
if (someData != null)
{
   if (someData.TagList.IsNullOrEmpty())
    {
        someData.TagList = new List<Tag>();
    }

    someData.TagList.Add(new Tag
    {
        K = xmlReader.GetAttribute("k"),
         V = xmlReader.GetAttribute("v")
    });

}

关于.net - 这是类型转换的低效使用吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/383899/

10-13 09:23