我正在尝试在F#中创建一小段代码.我的想法是,我将有一个定义一些方法,属性和事件的接口.使用这个接口我想定义一个抽象类(具有泛型类型),它将实现一些属性/方法,但不是所有在接口中定义的成员.定义所有成员的责任在于派生类.
到目前为止,我仍然坚持使用接口和抽象类.我遇到的问题:
接口编译正常,但抽象类有几个错误.消息包含在代码中
所有评论,更正,提示等都表示赞赏.由于这是我对F#的第一次试验,可能有很多错误需要指出.
我到目前为止的代码
接口定义
namespace A
type IValueItem =
interface
[<CLIEvent>]
abstract member PropertyChanged :
Control.IEvent<System.ComponentModel.PropertyChangedEventHandler,
System.ComponentModel.PropertyChangedEventArgs>
abstract ConvertedX : double with get, set
abstract Y : double with get, set
abstract member CreateCopy : obj
abstract member NewTrendItem : obj
end
Run Code Online (Sandbox Code Playgroud)
和抽象类
namespace A
[<AbstractClass>]
type ValueItem<'TX>() =
[<DefaultValue>]
val mutable _y : double
let _propertyChanged = new Event<_>()
// ERROR: This type is not an interface type
// ERROR: The type 'obj' is not …Run Code Online (Sandbox Code Playgroud) f# ×1