2013-10-27 3 views
18

ich diesen Fehler haben zuweisenDie Methode kann nicht Gruppe in eine implizit typisierte lokale Variable

in diesem Code

private async void Button_Click_2(object sender, RoutedEventArgs e) 
{ 
    var frenchvoice = InstalledVoices.All.Where(voice => voice.Language.Equals("fr-FR") & voice.Gender == VoiceGender.Female).FirstOrDefault; // in this line 
    sp.SetVoice(frenchvoice); 
    await sp.SpeakTextAsync(mytxt); 
} 
„Die Methode kann nicht Gruppe in eine implizit typisierte lokale Variable zuweisen“

Antwort

46

Sie haben vergessen, die Funktion (mit ())

16

anzurufen Yo u müssen die Klammern fügen die Methode FirstOrDefault

var frenchvoice = InstalledVoices.All 
     .Where(voice => voice.Language.Equals("fr-FR") && 
       voice.Gender == VoiceGender.Female) 
     .FirstOrDefault(); 

Und zu nennen, während Ihr Code auch die & Operator arbeitet mit, die richtige in einer logischen Bedingung verwenden &&

By the way, FirstOrDefault akzeptiert das gleiche Lambda angewendet Wo so können Sie Ihren Code zu einem einfacheren und wahrscheinlich schneller

var frenchvoice = InstalledVoices.All 
     .FirstOrDefault(voice => voice.Language.Equals("fr-FR") && 
           voice.Gender == VoiceGender.Female); 
+1

Dank für diese Erklärung zu reduzieren. Ich traf dieses Problem, das VB in C# umwandelt. Sollte als beste Antwort IMO markiert sein. – JohnnyBizzle

Verwandte Themen