Pregunta

Imagínese la siguiente interfaz en C #:

interface IFoo {
    void Bar();
}

¿Cómo se puede implementar esto en C #? Todos los ejemplos que he encontrado durante los 30 minutos de búsqueda en línea sólo muestran ejemplos que tienen tipos de retorno que supongo que es más común en un estilo funcional, pero algo que no se puede evitar en este caso.

Esto es lo que tengo hasta ahora:

type Bar() =
    interface IFoo with
        member this.Bar() =
            void

error con _FS0010:

  

palabra clave inesperado 'vacío' en la expresión _.

¿Fue útil?

Solución

El equivalente es la unidad que se define sintácticamente como ().

type Bar() =
    interface IFoo with
        member this.Bar () = ()

Otros consejos

Para obtener información general sobre los tipos F #, ver

La sintaxis básica de C # - tipos

A partir de esa página:

  

La unidad tipo tiene sólo un valor, escrito "()". Es un poco como "vacío", en el sentido de que si usted tiene una función que sólo se llama a los efectos secundarios (por ejemplo printf), una función de este tipo tendrá un tipo de retorno de la "unidad". Cada función tiene un argumento y devuelve un resultado, por lo que utilizar "unidad" para significar que el argumento / resultado no es interesante / sin sentido.

Las necesidades de tipo de retorno sea (), así que algo como miembro de this.Bar = () debe hacer el truco

El equivalente en F # es:

type IFoo =
    abstract member Bar: unit -> unit
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top