Как вы объявляете и используете интерфейс маркера в 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
невозможно, потому что похоже, что вы хотите создать новый тип интерфейса.
Ответ 2
type IMarker = interface end
type MyClass = interface IMarker
(Обновление)
F # всегда определяет интерфейсы неявно, вам нужно передать его в интерфейс, чтобы использовать его.
Почему интерфейс F # сильно отличается от С#
Ответ 3
Чтобы получить пустой тип, я верю, что вам нужно будет вернуться к синтаксису non-light (interface... end).
#light
type IMarker =
interface
end
type Marker =
interface IMarker
Ответ 4
Сверху моей головы (без запуска Visual Studio):
type IMarker ;
type MyClass =
interface IMarker