2016-07-26 85 views
0

我想用下面的實例對象來調用close()方法。它給出了一個錯誤:「。任何人都可以建議我做錯了用另一種方法調用方法的對象

public class Trial 
{ 
    public static void Initialize() 
    { 
     IWebDriver Instance = null; 
     Instance = new FirefoxDriver(); 
     Instance.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5)); 
     Instance.Navigate().GoToUrl("www.google.com"); 
    } 
    public static void Close() 
    { 
     Instance.Close(); 
    } 


} 

回答

3

你應該花一些時間來閱讀有關變量的作用域一些文章在這裏是一個這樣的文章,但也有很多很多。更多。

https://msdn.microsoft.com/en-us/library/ms973875.aspx

您最初在Initialize()方法中聲明瞭Instance。這意味着它只能在該方法的範圍內看到。如果你想在其他地方引用它,你必須在你希望訪問它的範圍內聲明它。在您的代碼示例中執行此操作的一種方法是將Instance的聲明移動到Trial類中。完成後,Initialize()Close()方法都位於其範圍內(class),因此它們都可以訪問該變量。

public class Trial 
{ 
    static IWebDriver Instance = null; 

    public static void Initialize() 
    { 
     Instance = new FirefoxDriver(); 
     Instance.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5)); 
     Instance.Navigate().GoToUrl("www.google.com"); 
    } 
    public static void Close() 
    { 
     Instance.Close(); 
    } 
} 
1

Instance是‘名字「實例」並不在當前的背景下存在的地方’,以Initialize(),所以不能見一斑Close() - 你可能想看看製作InstanceTrial類的成員,這樣所有的方法可以看到它

相關問題