F#Quotation生成非常奇怪的编译错误

我想弄清楚为什么以下行:

let emailQuotation: Expr<LoginView -> string> = <@ fun (v: LoginView) -> v.Email.Text @>

没有编译错误,说“在不确定类型上查找对象……”. ViewModel.Email属性是一个Xamarin Forms Entry,包含Text属性.

编译器需要什么更多信息,为什么它无法解释这个表达式?

最佳答案 我的解决方案很难看.我可以做这个:

let emailQuotation = <@ fun (v: LoginView) -> let email: Entry = v.Email in email.Text @>

报价无法解释v.Email的类型.我不是代码引用方面的专家,所以可能有一种方法可以让编译器在单个表达式中选择类型.

点赞