F# 没有抽象成员的抽象类的对象表达式

F# 没有抽象成员的抽象类的对象表达式,f#,F#,给定一个没有成员的接口 type IFoo = interface end 可以使用对象表达式创建实例 let foo = { new IFoo } 但是,对于没有抽象成员的抽象类,似乎不可能做到这一点 [<AbstractClass>] type Foo() = class end let foo = { new Foo() } 有没有更好的方法为没有抽象成员的抽象类型创建对象表达式?我认为没有更好的方法 我也不知道你为什么要这样做(抽象类没有成员),但我假设你有你的理由,

给定一个没有成员的接口

type IFoo = interface end
可以使用对象表达式创建实例

let foo = { new IFoo }
但是,对于没有抽象成员的抽象类,似乎不可能做到这一点

[<AbstractClass>]
type Foo() = class end

let foo = { new Foo() }

有没有更好的方法为没有抽象成员的抽象类型创建对象表达式?

我认为没有更好的方法


我也不知道你为什么要这样做(抽象类没有成员),但我假设你有你的理由,就这样吧:)

出于好奇,标记接口和无成员抽象基类之间有什么实际区别吗?@pblasucci:是的。抽象类可以提供派生类所使用的功能。我不知道是否有更简单的语法来实现这一点。然而,如果你想创建一个新的继承类而不重写任何成员,那么这个类可能不应该是抽象的——你可以直接创建它的实例,不是吗?@Daniel:啊,我明白你的意思。基于编译器错误,我假设仅仅添加一些不可重写的成员并不能解决问题?@Tomas:可以说,是的。为了对称,它是抽象的。而且我不希望它公开实例化。显然,我可以标记构造函数
internal
,但是遇到这个奇怪的东西激起了我的好奇心。
let foo = { new Foo() with member __.ToString() = base.ToString() }