2009-01-04 11 views
14

¿Cómo se replica esto en F #?¿Cómo declaras y consumes la interfaz de marcador en f #?

interface IMarker 
{ 
    // No members here 
} 

class MyClass : IMarker 
{ 
// can contain code 
} 

Actualización: El siguiente código que incluyen una definición de interfaz marcador, pero ninguna de las respuestas hasta el momento se las arregla para producde clase que implementa esta interfaz marcador (ver MiClase anteriores)

type IMarker = interface  end 
+2

Las pautas de codificación .NET recomiendan este patrón. No sé por qué. –

+6

Porque es mucho más fácil y más rápido usar la reflexión para descubrir los atributos. –

Respuesta

-1

De la parte superior de la cabeza (sin disparar hasta Visual Studio):

type IMarker ; 

type MyClass = 
    interface IMarker 
3

el fin de obtener un tipo de vacío, creo que tendrá que volver a la sintaxis no la luz (interfaz ... final).

#light 

type IMarker = 
    interface 
    end 

type Marker = 
    interface IMarker 
13

Una cuestión de edad, pero la sintaxis necesaria (F # 2.0) para este caso especial es en realidad:

type IMarker = interface end 

type Marker = 
    class 
    interface IMarker 
    end 

O, alternativamente, (incluyendo un constructor para Marcador):

type IMarker = interface end 

type Marker() = 
    interface IMarker 

Simplemente escribiendo

type Marker = 
    interface IMarker 

no es posible porque parece que desea crear un nuevo tipo de interfaz.

Cuestiones relacionadas