Как вы объявляете и используете интерфейс маркера в f #?

Как вы копируете это в F #?

interface IMarker
{
    // No members here
}

class MyClass : IMarker
{
// can contain code
}

Обновление: Следующий код определяет интерфейс маркера, но ни один из ответов до сих пор не может управлять классом, который реализует этот интерфейс маркера (см. MyClass выше).

type IMarker = interface     end

Ответы

Ответ 1

Старый вопрос, но требуемый синтаксис (F # 2.0) для этого особого случая на самом деле:

type IMarker = interface end

type Marker =
  class
    interface IMarker
  end

Или альтернативно (включая конструктор для маркера):

type IMarker = interface end

type Marker() =
    interface IMarker

Просто пишите

type Marker =
  interface IMarker

невозможно, потому что похоже, что вы хотите создать новый тип интерфейса.

Ответ 3

Чтобы получить пустой тип, я верю, что вам нужно будет вернуться к синтаксису non-light (interface... end).

#light

type IMarker = 
    interface
    end

type Marker =
    interface IMarker

Ответ 4

Сверху моей головы (без запуска Visual Studio):

type IMarker ;

type MyClass =
  interface IMarker