F# 从方法调用抽象函数';s自己的实现
我尝试从方法自己的实现中调用函数F# 从方法调用抽象函数';s自己的实现,f#,abstract,F#,Abstract,我尝试从方法自己的实现中调用函数 [<AbstractClass>] type CallAnAbstract () = let doSomethingElse () = printfn "Done Something.." abstract doSomethingAbstract: unit -> unit member this.DoSomething = printfn "Done Something.." d
[<AbstractClass>]
type CallAnAbstract () =
let doSomethingElse () = printfn "Done Something.."
abstract doSomethingAbstract: unit -> unit
member this.DoSomething =
printfn "Done Something.."
doSomethingElse ()
doSomethingAbstract ()
[(见答案)@Mark Seemann解释了组合而非继承:
[<AbstractClass>]
type UseComposition (doSomethingElseDefinedLater) =
let doSomethingElse () = printfn "Done Something.."
member this.DoSomething =
printfn "Done Something.."
doSomethingElse ()
doSomethingElseDefinedLater ()
[]
类型使用成分(doSomethingElseDefinedLater)=
让doSomethingElse()=printfn“做了某事…”
请记住这件事=
printfn“完成了某事…”
doSomethingElse()
dosomethingelesdefinedlater()
有哪些替代方案?我会避免通过构造函数传递函数,我希望重用some代码,在调用抽象函数之前,让DoSomething
有“一些实现”。您需要使用此
参考:
this.doSomethingAbstract()
啊,好的。谢谢。我认为只有成员
需要以这种方式引用。它是抽象
成员。它是私有
,并且没有使用抽象成员
声明。这不是一种抽象
方法吗?不确定确切的定义,但我怀疑用关键字定义的任何东西>成员
是一个成员。它将包括属性和方法。让
绑定不能使用此
引用调用,只能使用成员。的确,摘要
成员定义不包括关键字成员
,但重写或默认实现会包含关键字。