2016-07-26 7 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

あなたは変数のスコープに関するいくつかの記事を読んでいくつかの時間を費やす必要がありますここではそのような記事がありますが、多くがあり、多くの。 more。

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

Initialize()メソッドの中には、もともとInstanceが宣言されています。つまり、その方法のの範囲内にしか見ることができません。別の場所でそれを参照したい場合は、その場所にアクセスしたい範囲で宣言する必要があります。コードサンプルでこれを行う1つの方法は、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クラスのメンバーを作るのが見たいと思うかもしれません

関連する問題