给定没有成员的界面
type IFoo = interface end
可以使用对象表达式
创建实例let foo = { new IFoo }
但是,对于没有抽象成员的抽象类,似乎不可能这样做。
[<AbstractClass>]
type Foo() = class end
let foo = { new Foo() }
给出错误:无效的对象表达式。没有覆盖或接口的对象应该使用表达式'new Type(args)'而不使用大括号。嗯,我们知道这也不会有效。
这是一个hacky解决方法
let foo = { new Foo() with member __.ToString() = base.ToString() }
是否有更好的方法为没有抽象成员的抽象类型创建对象表达式?
答案 0 :(得分:1)
我认为没有更好的方法。
我也不知道你为什么要这样做(没有成员的抽象类),但我只是假设你有你的理由并留在那里:)