下面的代码使用lambda函数:与委托和回调funcitons问题 - fsharp,交易所托管API
// https://msdn.microsoft.com/en-us/library/office/dn567668.aspx#Create
#r "C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll"
open Microsoft.Exchange.WebServices.Data
open System
let exchangeService emailAddress password =
let service = new ExchangeService(ExchangeVersion.Exchange2010_SP2)
service.Credentials <- new WebCredentials(emailAddress,password)
service.AutodiscoverUrl(emailAddress, (fun (redirectionUrl:string) -> redirectionUrl.ToLower().StartsWith("https://")))
service
但我有问题,当我绑定在AutodiscoverUrl使用的名称在lambda:
let x (redirectionUrl:string) = redirectionUrl.ToLower().StartsWith("https://")
service.AutodiscoverUrl(emailAddress, x)
Visual Studio抱怨“x”。
“这表达预计将有类型Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverRedirectionUrlValidationCallback但这里有类型的字符串 - > BOOL”
请注意,这是相同的签名上面的lambda函数。使用F#交互检查...
fun (redirectionUrl:string) -> redirectionUrl.ToLower().StartsWith("https://")
val it : redirectionUrl:string -> bool = <fun:[email protected]>
和
let x (redirectionUrl:string) = redirectionUrl.ToLower().StartsWith("https://")
val x : redirectionUrl:string -> bool
我缺少什么?
感谢Tomas。 “转换到代表”是有道理的 - 因此是错误信息。 – 2015-02-10 18:21:10