【发布时间】:2011-08-22 06:50:57
【问题描述】:
可能重复:
C# - Is there a better alternative than this to ‘switch on type’?
我的公司遗留代码如下
public override Uri GetUri(object obj)
{
if ((obj is Entry) || (obj is EntryComment))
{
//
}
if (obj is Blog)
{
//
}
// if obj is blah blah blah
}
这种方法很丑。我想重构它,但我不知道迭代 obj 可能是的“可能”类型的技术。
我该如何重构它?
谢谢。
【问题讨论】:
-
我添加了 region 指令来演示代码有多丑:-s
-
你能把 if 语句块中的代码移到类型本身吗?这样你的方法就是:
return obj.Uri;. -
@Lasse V. Karlsen,为您的评论 +1。
标签: c# .net types switch-statement