2016-04-11 26 views
0
Yukarıdaki koddan görebileceğiniz gibi
using InstrumentA.Interop; 
using InstrumentB.Interop; 
using InstrumentC.Interop; 

namespace SomeProject 
{ 
    class Program 
    { 
     void InitializeInstruments() 
     { 
      //I want to be able to instantiate whatever driver I want: (just one of them) 
      InstrumentA.Interop.DriverA driver = new InstrumentA.Interop.DriverA(); 
      InstrumentB.Interop.DriverB driver = new InstrumentB.Interop.DriverB(); 
      InstrumentC.Interop.DriverC driver = new InstrumentC.Interop.DriverC(); 
      //or some instrumentD,E, F that users can choose to add. 

      driver.Initialize(); 
      driver.DoOtherStuffs(); 
     } 
    } 
} 

bir nesne örneğini ve adını driver?nasıl dinamik onu nasıl yapabilir farklı referans dosyalarının

+0

ortak bir arayüz paylaşıyor musunuz? – Rob

+0

@Rob, evet yapıyorlar. –

cevap

0

böyle bir arayüze sahip varsayarsak:

public interface IDriver 
{ 
    void Initialize(); 
    void DoOtherStuffs(); 
} 

Ve her üç sürücüleri bu arabirim uygulamak, o zaman yazabilirsiniz:

void InitializeInstruments() 
{ 
    IDriver driver; 
    if (a == 1) 
     driver = new InstrumentA.Interop.DriverA(); 
    else if (a == 2) 
     driver = new InstrumentB.Interop.DriverB(); 
    else 
     driver = new InstrumentC.Interop.DriverC(); 

    driver.Initialize(); 
    driver.DoOtherStuffs(); 
}