在另一个方法中调用方法的对象

本文关键字:方法 对象 调用 另一个 | 更新日期: 2023-09-27 17:59:00

我正在尝试使用下面的实例对象来调用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();
     }

}

在另一个方法中调用方法的对象

您应该花一些时间阅读一些关于变量作用域的文章。这里有一篇这样的文章,但还有很多。

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();
    }
}

InstanceInitialize()的"本地",因此Close()看不到它-您可能需要考虑将Instance作为Trial类的成员,以便所有方法都可以看到它。