C#如何在创建新类时自动调用void或创建对象
在我的测试场景中,我基本上有两个类Program.CS和SeleniumLibrary.CS 在program.cs中,我想创建一个新的SeleniumLibrary.cs类,但我想完成的是,当我执行new()时,我想自动创建我的ieDriver的新实例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
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
。