【发布时间】:2008-10-06 03:49:29
【问题描述】:
给定:
interface I
{
}
class B: I
{
}
class C: I
{
}
class A
{
public void Method(B arg)
{
}
public void Method(C arg)
{
}
public void Method(I arg)
{
// THIS is the method I want to simplify.
if (I is B)
{
this.Method(arg as B);
}
else if (I is C)
{
this.Method(arg as C);
}
}
}
我知道有更好的方法来设计这种类型的交互,但是因为 无法解释需要很长时间才能解释的细节。 由于这种模式会被重复很多次,我想替换 具有通用实现的条件逻辑,我只能使用一行。 我看不到实现这个通用方法/类的简单方法,但我的直觉告诉我应该是可能的。
任何帮助将不胜感激。
【问题讨论】:
-
哪个模式重复了很多次?类型检查?
标签: c# .net polymorphism