给定没有成员的接口
type IFoo = interface end
Run Code Online (Sandbox Code Playgroud)
可以使用对象表达式创建实例
let foo = { new IFoo }
Run Code Online (Sandbox Code Playgroud)
但是,对于没有抽象成员的抽象类,似乎不可能这样做.
[<AbstractClass>]
type Foo() = class end
let foo = { new Foo() }
Run Code Online (Sandbox Code Playgroud)
给出错误:无效的对象表达式.没有覆盖或接口的对象应该使用没有大括号的表达式'new Type(args)'.好吧,我们知道这也行不通.
这是一个hacky解决方法
let foo = { new Foo() with member __.ToString() = base.ToString() }
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法为没有抽象成员的抽象类型创建对象表达式?
| 归档时间: |
|
| 查看次数: |
668 次 |
| 最近记录: |