2016-08-15 3 views
0

아래 클래스가 있는데 어떻게 클래스의 생성자를 명시 적으로 호출 할 수 있습니까?C에서 명시 적으로 generic 클래스의 생성자를 호출하는 방법 #

[TestFixture(typeof(ChromeDriver))] 
    public class BaseWebDriver<TWebDriver> where TWebDriver : IWebDriver, new() 
    { 
     public IWebDriver Driver { get; set; } 
     public WebDriverWait wait; 

     public BaseWebDriver() 
     { 
      Driver = new TWebDriver(); 
     } 

     [OneTimeSetUp] 
     public virtual void SetupTest() 
     { 
      // Go to the login page 
      Driver.Navigate().GoToUrl("LoginUrl"); 
     } 

     [OneTimeTearDown] 
     public virtual void TearDownTest() 
     { 
      Driver.Quit(); 
      Driver.Dispose(); 
      Console.WriteLine("***TearDown***\n"); 
     } 

public void restartBrowser() 
{ 
Driver.Quit(); 
//Here I have to call the constructor of the class to open the browser again 
} 

    } 

파생 클래스에서 생성자를 호출 할 수 있습니까? 나는 제네릭을 처음 사용하므로 친절하게 도움이됩니다.

+0

질문에 의미가 없습니다. 'new blah()'를 호출하면 생성자를 호출합니다. 생성자 밖에서 해당 기능이 필요하면 자체 공용 메서드로 이동하십시오. – DavidG

+1

'Driver = new TWebDriver();'를 다시 사용하지 않는 이유는 무엇입니까? 원하는 경우 별도의 함수로 리팩터링하고 생성자와 'restartBrowser'에서 호출 할 수 있습니다. –

+0

감사합니다 Andrew, Driver = new TWebDriver()가 올바르게 작동합니다. –

답변

0

Andrew가 말했듯이 Driver = new TWebDriver()가 작동합니다. 감사.

관련 문제