这个问题是对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/