2015-03-25 78 views
-8

有3个类名为Alpha,Beta和Omega。 Alpha和Beta类继承了Interface OInterface,它有两个函数,分别叫做start和run。在Omega类的构造函数中,我们传递值1或2.如何在.net中运行时创建对象

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

+3

你尝试过什么? – pinkfloydx33 2015-03-25 12:20:01

+0

为什么你把“动态”和“绑定”标签? – Szer 2015-03-25 12:25:08

回答

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

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

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(); 
}