预期值为恒定值

Ama*_*man -1 c#

我这里遇到问题了。

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 的情况下修复它?

Stu*_*art 6

您应该使用 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 不适合这种类型的用例。