F#:尝试支持在F#和C#惯用语中的构造函数中传递函数

MiloDC

我的风格:

open System

type MyType (myFn : unit -> bool) =
    member this.MyResult with get () = myFn ()
    new (myFn : Func<bool>) = MyType (myFn.Invoke)

我得到的错误:

A unique overload for method 'MyType' could not be determined based on type information prior to this program point. A type annotation may be needed. Candidates: new : myFn:(unit -> bool) -> MyType, new : myFn:Func<bool> -> MyType

既然我已经提供了类型注释,那么什么不起作用的真正原因是什么?

托马斯·佩特里切克(Tomas Petricek)

如果F#需要Func<bool>委托,则它将能够调用构造函数因此,只需执行一次重载即可Func<bool>对C#和F#都适用:

open System

type MyType (myFn : Func<bool>) =
  member this.MyResult with get () = myFn.Invoke ()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

F#中的惯用构造函数

来自分类Dev

F#惯用语直到

来自分类Dev

F#中的通用构造函数

来自分类Dev

F#中的多个构造函数和类继承

来自分类Dev

F#调用构造函数中的成员函数

来自分类Dev

使用F#中的多个参数调用C#函数

来自分类Dev

如何在 C# 中实现 F# 高阶函数?

来自分类Dev

从F#中的序列构造中调用函数

来自分类Dev

在F#中扩展函数

来自分类Dev

如何在Scala中实现OCaml / F#的“函数”构造?

来自分类Dev

如何在Scala中实现OCaml / F#的“函数”构造?

来自分类Dev

F#对象构造函数

来自分类Dev

F#记录构造函数

来自分类Dev

F#构造函数约束

来自分类Dev

在C#中传递函数指针

来自分类Dev

接受F#中的函数的函数

来自分类Dev

F#:为什么使用外部函数版本比传递函数作为参数更快

来自分类Dev

聚合函数-F#与C#性能

来自分类Dev

从C#调用F#函数

来自分类Dev

聚合函数-F#与C#性能

来自分类Dev

从C#调用F#函数

来自分类Dev

F#使用构造函数作为函数

来自分类Dev

f#:LINQ to Entities仅支持无参数构造函数和初始化程序

来自分类Dev

F#中的不同函数定义

来自分类Dev

F#中的函数/委托的ConstructorInfo

来自分类Dev

F#中通用约束函数的记忆

来自分类Dev

在F#中,如何访问函数的属性?

来自分类Dev

在F#中推断咖喱函数签名

来自分类Dev

F#中的泛化函数