我有这个问题:
http://s28.postimg.org/x8gb3pvkb/Capture.png 这是通过语音的谷歌搜索代码:
string Speech = e.Result.Text;
if (Speech == "I WANT TO SEARCH SOMETHING")
{
QEvent = Speech;
JARVIS.SpeakAsync("what do you want to search");
Speech = string.Empty;
}
else if (Speech != string.Empty && QEvent == "I WANT TO SEARCH SOMETHING")
{
System.Diagnostics.Process.Start("http://google.com/search?q=" + Speech);
QEvent = string.Empty;
ranNum = rnd.Next(1, 4);
if (ranNum == 1) { JARVIS.SpeakAsync("Alright, I am searching " + Speech + " in google"); }
else if (ranNum == 2) { JARVIS.SpeakAsync("ok sir, I am searching " + Speech); }
else if (ranNum == 3) { JARVIS.SpeakAsync("Alright, I am searching "); }
Speech = string.Empty;
}
错误列表中显示此错误:
Unreachable code Detected
你能告诉我为什么这是无法访问的代码吗?
答案 0 :(得分:0)
你需要关闭开关
switch (caseSwitch)
{
case "open":
SendKeys.Send("{ENTER}");
break;
default:
//do something
break;
}
string Speech = e.Result.Text;
答案 1 :(得分:0)
我认为发生此错误是因为您没有按照图片上显示的那样关闭switch语句。由于这是因为swithc而发生的,因此您发布的代码无关紧要。
您在break;
中使用case: "Open"
,无法访问string Speech = e.Result.Text;
行。
开始执行所选开关部分中的语句列表 用第一个语句并通过语句列表继续, 通常直到跳转语句,例如休息,转到大小写,返回, 或扔掉,到达。此时,控制权转移到外部 switch语句或另一个案例标签。
switch (expr)
{
...
case "Open":
SendKeys.Send("{ENTER}");
break;
}
string Speech = e.Result.Text;
答案 2 :(得分:0)
从屏幕截图中可以看出,您已将代码放在break
之后,因此不会执行这些行,因为break
之后的所有代码都会被跳过,这就是显示{{1}的原因}}
因此,您需要将Unreachable code
放在这些代码块之后,或删除这些代码块并放在break
之后。