你如何在F#中复制这个?
interface IMarker
{
// No members here
}
class MyClass : IMarker
{
// can contain code
}
Run Code Online (Sandbox Code Playgroud)
更新:以下代码确实定义了标记接口,但到目前为止,没有一个答案设法生成实现此标记接口的producde类(参见上面的MyClass)
type IMarker = interface end
Run Code Online (Sandbox Code Playgroud)
wme*_*yer 15
一个老问题,但这个特殊情况所需的语法(F#2.0)实际上是:
type IMarker = interface end
type Marker =
class
interface IMarker
end
Run Code Online (Sandbox Code Playgroud)
或者(包括Marker的构造函数):
type IMarker = interface end
type Marker() =
interface IMarker
Run Code Online (Sandbox Code Playgroud)
只是写作
type Marker =
interface IMarker
Run Code Online (Sandbox Code Playgroud)
是不可能的,因为它看起来像你想要创建一个新的接口类型.
Cod*_*day 10
type IMarker = interface end
type MyClass = interface IMarker
Run Code Online (Sandbox Code Playgroud)
(更新)
F#总是隐式定义接口,您需要强制转换为接口才能使用它.
Pet*_*lon -1
我突然想到(没有启动 Visual Studio):
type IMarker ;
type MyClass =
interface IMarker
Run Code Online (Sandbox Code Playgroud)