小编lam*_*mpi的帖子

如何通过使用多态来避免'If cascade'和类型转换?

让我们假设以下类结构具有基类BC和2个派生类DC_A和DC_B; 此外,还有一个XY类,带有一个带有BC类型参数和其他方法的methode goo()

// base class
public class BC
{
    public virtual void foo();
}

// derived class A
public class DC_A : BC
{
    public override void  foo() {}
}

// derived class B
public class DC_B : BC
{
    public override void  foo() {}
}


public class XY
{
    public void goo(BC o)
    {
        // perfectly fine using polymorphism; no Ifs' no casting, OOP at its best ;-)
        o.foo();

        // but what to do here?
        if ( (o …
Run Code Online (Sandbox Code Playgroud)

c# polymorphism design-patterns

4
推荐指数
1
解决办法
762
查看次数

标签 统计

c# ×1

design-patterns ×1

polymorphism ×1