无法将方法组分配给隐式类型的局部变量
我有这个错误
“无法将方法组分配给隐式类型的局部变量”
在这段代码中
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); }
你忘了调用函数(用()
)
您必须添加括号以调用方法FirstOrDefault
var frenchvoice = InstalledVoices.All .Where(voice => voice.Language.Equals("fr-FR") && voice.Gender == VoiceGender.Female) .FirstOrDefault();
并且,虽然您的代码也使用&运算符,但在逻辑条件中使用的正确代码是&&
顺便说一下, FirstOrDefault
接受相同的lambda应用于Where,这样你就可以将代码缩减到更简单,更快的速度
var frenchvoice = InstalledVoices.All .FirstOrDefault(voice => voice.Language.Equals("fr-FR") && voice.Gender == VoiceGender.Female);