2010-05-02 10 views
5

Como dice el título, estoy tratando de usar una clase declarada en un espacio de nombres que contenga "base" en su nombre. pensar en una situación como la siguiente:Accediendo a un espacio de nombres que contenga .base en su nombre desde F #

open Foo.base.Bar

En C# que acababa de usar @ antes de base, pero F # parece ignorar que ya piensan que @ es el operador infijo utilizado para la lista de concatenación. Dado que el espacio de nombre pertenece a una biblioteca de terceros que no puedo modificar, ¿hay alguna forma de poder acceder a él desde F #?

Respuesta

6

En F #, puede lograr algo similar al encerrar el nombre especial entre dos pares de `` símbolos. El siguiente debe hacer el truco:

open Foo.``base``.Bar 

Esto es un poco más flexible que en C# - El nombre puede contener casi cualquier cosa, por lo que se puede definir, por ejemplo, los miembros con el espacio en el nombre:

let ``some name!`` = 42 
+3

Esta es una característica útil; en las pruebas de unidad de producto F #, tenemos pruebas denominadas como "member this". \ "Agregar una referencia al proyecto actualiza correctamente el archivo .fsproj \' '()". :) – Brian

Cuestiones relacionadas