检测到无法访问的代码字符串Speech=e.Result.Text;
本文关键字:Speech Result Text 字符串 代码 访问 检测 | 更新日期: 2023-09-27 18:27:06
我有这个问题:
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
你能告诉我为什么这是无法访问的代码吗?
您需要关闭开关
switch (caseSwitch)
{
case "open":
SendKeys.Send("{ENTER}");
break;
default:
//do something
break;
}
string Speech = e.Result.Text;
我认为发生此错误是因为您没有像在图像上显示的那样关闭switch语句。由于发生这种情况是因为switc,所以您发布的代码无关紧要。
您在case: "Open"
中使用了break;
,您的string Speech = e.Result.Text;
线路无法访问。
来自文件;
开始执行所选开关部分中的语句列表使用第一语句并继续语句列表,通常直到跳转语句,如break、goto-case、return,或投掷达到。此时,控制权转移到外部switch语句或另一个case标签。
switch (expr)
{
...
case "Open":
SendKeys.Send("{ENTER}");
break;
}
string Speech = e.Result.Text;
从屏幕截图中,它显示您已将代码放在break
之后,因此这些行将不会执行,因为break
之后的所有代码都将被跳过,这就是它显示Unreachable code
的原因。
因此,您需要将break
放在这些代码块之后,或者删除这些代码块并放在switch-case
之后。