【发布时间】:2018-06-17 05:36:01
【问题描述】:
我想根据变量值声明一个对象。
这是我尝试运行但无法编译的代码:
if (bcheck == 0)
IWebDriver driver = new ChromeDriver();
else if (bcheck == 1)
IWebDriver driver = new FirefoxDriver();
else if (bcheck == 2)
IWebDriver driver = new InternetExplorerDriver();
如果我尝试编译代码,我会收到以下错误消息:
内嵌语句不能是声明或带标签的语句
如何重写代码?
驱动程序对象在下面的代码中使用,我必须保留该名称以免更改程序流程。
【问题讨论】:
-
事先声明
driver(没有值)并在每个条件中分配给它。 -
我会使用
Dictionary,类似stackoverflow.com/a/42505360/2946329 -
具有讽刺意味的是,没有一个答案可以解释给出的实际错误,即缺少花括号。
-
if-statement 是一个定义范围的块结构,变量的范围决定了它对程序其余部分的可见性。所以如果你没有在if-statement 之前声明变量,你就不能在外面访问它。错误消息本身具有误导性,因为它告诉您如果要使用声明,则应在if内使用{}而不是嵌入语句(一个衬里)。但是,如果您这样做,您仍然无法访问上面提到的if之外的变量。
标签: c# .net compiler-errors