如何在运行时在.net中创建对象

时间:2015-03-25 12:19:03

标签: c# .net dynamic binding

  

有3个名为Alpha,Beta和Omega的类。 Alpha类和Beta类继承了接口OInterface,它有2个函数叫做start和run。在Omega Class的构造函数中,我们传递值1或2.

如果值为1,我需要创建Alpha类的对象或Beta的对象。 我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

class Omega
{
    private OInterface iDontKnowHowToNameIt;
    public Omega(int value)
    {
        if (value == 1)
            iDontKnowHowToNameIt = new Alpha();
        else if (value == 2)
            iDontKnowHowToNameIt = new Beta();
        else
            throw new ArgumentException("Wrong value passed");
    }
}

答案 1 :(得分:1)

如果您只需要接口的方法声明:

OInterface obj = null;

public Omega(int type)
{
    if(type == 1)
        obj = new Alpha();
    else if (type == 2)
         obj = new Beta();
    else
         throw new ArgumentException("Wrong type provided: " + type, "type");
}

现在您可以使用您需要的方法,例如:

public void RunSomething()
{
    obj.Run();
}