2015-03-25 52 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(); 
} 
相關問題