我这里遇到问题了。
void Sre_Reconhecimento(object sender, SpeechRecognizedEventArgs e)
{
string text = System.IO.File.ReadAllText(@"C:\Users\ADMIN25\Desktop\testing.txt");
string[] words = text.Split(',');
switch (e.Result.Text)
{
case words[0]:
MessageBox.Show("works!");
break;
case words[1]:
MessageBox.Show("works too!");
break;
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行该程序时,出现此错误:需要一个常量值。
如何在不使用if/elseif case 的情况下修复它?
您应该使用 if / else 来执行此操作。
但是,如果由于某种原因您确实想使用开关,则可以通过模式处理来实现。
例如
void Main()
{
string[] words = {"Foo", "Bar", "Quax"};
var word = "Bar";
switch(word)
{
case string w when w == words[0]:
MessageBox.Show($"word was {words[0]}");
break;
case string w when w == words[1]:
MessageBox.Show($"word was {words[1]}");
break;
}
}
Run Code Online (Sandbox Code Playgroud)
实际上,这里使用 if / else 。我认为 switch 不适合这种类型的用例。