我有这个错误
“无法将方法组分配给隐式类型的局部变量”
在此代码中
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);
}
答案 0 :(得分:54)
您忘了调用该函数(使用()
)
答案 1 :(得分:17)
您必须添加括号以调用方法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);