将参数添加到事件处理程序



好吧,我有这段代码。

recognizer.SpeechRecognized +=
                      new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);

 static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
        {
            if (e.Result != null && e.Result.Text != null)
            {
                Console.WriteLine("  Recognized text =  {0}", e.Result.Text);
                File.WriteAllText("text/text.txt", e.Result.Text);
            }
            else
            {
                Console.WriteLine("  Recognized text not available.");
            }
        }

我想在我的代码中添加一个参数,比如 myData 要在函数中显示的,以便我也可以用文本打印它。

修改方法以接受您实际需要的参数:

static void recognizer_SpeechRecognized(
    SpeechRecognizedEventArgs e, string myData)

然后使用 lambda 分配事件处理程序,传递适当的参数,并关闭您拥有的任何数据:

string myData = "hello world";
recognizer.SpeechRecognized += 
    (s, args) => recognizer_SpeechRecognized(args, myData);

您可以考虑将myData作为具有此处理程序的类中的字段。并使此处理程序非静态。

我不建议四处走动并与处理程序一起传递myData

相关内容

  • 没有找到相关文章

最新更新