2014-02-14 3 views
-1

хорошо у меня этот код.Добавить аргумент в обработчик событий.

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 будет показан в функции, так что я могу печатать, что тоже с текстом.

ответ

0

изменить метод, чтобы принять аргумент (ы), что вы на самом деле нужно:

static void recognizer_SpeechRecognized(
    SpeechRecognizedEventArgs e, string myData) 

Затем с помощью лямбда, чтобы назначить обработчик события, передать соответствующие аргументы, и близко над теми данными, у вас есть :

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

уточните пожалуйста. Я новичок в C# – Adeel

+0

@Adeel Какая разработка вам нужна? Какую часть этого вы не понимаете? – Servy

+0

Вторая часть, где я назначаю лямбду назначать обработчик события. – Adeel

0

Вы можете рассмотреть вопрос о myData как поле в классе, который имеет этот обработчик. И сделайте этот обработчик нестатичным.

Я бы не предложил взломать ваш путь и проехать myData с обработчиком.

+0

Может быть разумной причиной статичности метода. Возможно, обработчик событий также связан с статическим контекстом. Это также создает переменную, которую программист должен заботиться о том, чтобы манипулировать ими из любых других мест по всему классу, а не ограничивать ее сферу только теми местами, где это необходимо. Наконец, передача данных напрямую, а не создание поля, легче программировать, ни в коем случае не взломать, лучше разрабатывать, проще кодировать и более эффективно. – Servy

Смежные вопросы