30

我有这个错误

“无法将方法组分配给隐式类型的局部变量”

在这段代码中

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);
}
4

2 回答 2

74

您忘记调用函数(使用()

于 2013-10-27T20:43:44.787 回答
25

您必须添加圆括号才能调用该方法FirstOrDefault

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

而且,虽然您的代码也可以使用 & 运算符,但在逻辑条件中使用的正确代码是&&

顺便说一句,FirstOrDefault接受应用于 Where 的相同 lambda,因此您可以将代码简化为更简单且可能更快

   var frenchvoice = InstalledVoices.All
       .FirstOrDefault(voice => voice.Language.Equals("fr-FR") && 
                                voice.Gender == VoiceGender.Female);
于 2013-10-27T20:44:40.340 回答