C#如何在创建新类时自动调用void或创建对象

C#如何在创建新类时自动调用void或创建对象,c#,C#,在我的测试场景中,我基本上有两个类Program.CS和SeleniumLibrary.CS 在program.cs中,我想创建一个新的SeleniumLibrary.cs类,但我想完成的是,当我执行new()时,我想自动创建我的ieDriver的新实例 class Program { static void Main(string[] args) { //make SeleniumLibrary._iedriver here somehow Sel

在我的测试场景中,我基本上有两个类Program.CS和SeleniumLibrary.CS

在program.cs中,我想创建一个新的SeleniumLibrary.cs类,但我想完成的是,当我执行new()时,我想自动创建我的ieDriver的新实例

class Program
{
    static void Main(string[] args)
    {
       //make SeleniumLibrary._iedriver here somehow
        SeleniumLibrary.SeleniumLibrary sl = new SeleniumLibrary.SeleniumLibrary();
        sl.Navigate("www.google.com");
        sl.Navigate("www.nfl.com");
    }
}

class SeleniumLibrary
{
    private InternetExplorerDriver _ieDriver { get; set; }
    private InternetExplorerDriver ieDriver
    {
        get
        {
            if (_ieDriver == null)
                _ieDriver = new InternetExplorerDriver();

            return _ieDriver;

        }
    }

    public void Navigate(string url)
    {
        ieDriver.Navigate().GoToUrl(url);
    }
}

你可以看到我称之为ieDriver的导航方法的内部,但是有没有办法清除上面的代码?

你可以创建一个c-tor,然后在其中创建ieDrive

我一定是误解了这里的某些内容,因为有什么问题:

class SeleniumLibrary
{     
    private readonly InternetExplorerDriver _ieDriver;

    public SeleniumLibrary() //Constructor
    {
        _ieDriver = new InternetExplorerDriver();
    }    

    public void Navigate(string url)
    {
        _ieDriver.Navigate().GoToUrl(url);
    }
}

这就是DUD在他的文章中提出的建议,我只是简单地解释一下。

我不确定构造函数在这种情况下是否正确,因为你想在整个类中维护同一个对象。你可以使它保持静态。为什么要创建新的?为什么要这样做?现有代码使用“延迟初始化”在第一次需要时自动创建InternetExplorerDriver。为什么要在需要之前创建一个?请参阅,我已尝试但未编译严重性代码描述项目文件行抑制状态错误CS0103当前上下文中不存在名称“ieDriver”SeleniumDLL C:\Users\phyrephyre\Documents\Visual Studio2015\Projects\DejustictionEngine\SeleniumDLL\SeleniumDLL\SeleniumLibrary.cs 28 ActiveI尝试了公共SeleniumDriver()//构造函数{{IEU Driver=new InternetExplorerDriver();},它告诉我方法必须返回type@JL1哇,那是个错误。构造函数是
SeleniumLibrary
,而不是
SeleniumDriver
。在C#中,构造函数必须像类一样命名。编辑代码。关于第一个错误,字段是
\u ieDriver
,而不是
ieDriver