你如何在F#中复制这个?
interface IMarker { // No members here } class MyClass : IMarker { // can contain code }
更新:以下代码确实定义了标记接口,但到目前为止,没有一个答案设法生成实现此标记接口的producde类(参见上面的MyClass)
type IMarker = interface end
wmeyer.. 15
一个老问题,但这个特殊情况所需的语法(F#2.0)实际上是:
type IMarker = interface end type Marker = class interface IMarker end
或者(包括Marker的构造函数):
type IMarker = interface end type Marker() = interface IMarker
只是写作
type Marker = interface IMarker
是不可能的,因为它看起来像你想要创建一个新的接口类型.
一个老问题,但这个特殊情况所需的语法(F#2.0)实际上是:
type IMarker = interface end type Marker = class interface IMarker end
或者(包括Marker的构造函数):
type IMarker = interface end type Marker() = interface IMarker
只是写作
type Marker = interface IMarker
是不可能的,因为它看起来像你想要创建一个新的接口类型.
type IMarker = interface end type MyClass = interface IMarker
(更新)
F#总是隐式定义接口,您需要强制转换为接口才能使用它.
为什么F#接口与C#有很大不同