Al principio pensé que esto sería cerca de lo que quería:
type Foo<'a> private() =
static member Blah (a:'a) =
printfn "%A" a
Ser como el pre lenguaje C# 2.0 de ser instanciable sólo a través de la reflexión o de la clase en sí (que esperemos que no lo haría eso).
sin embargo, esto se compila a:
[Serializable, CompilationMapping(SourceConstructFlags.ObjectType)]
public class Foo<a>
{
internal Foo() {...}
public static void Blah(a a) {...}
}
lo que implica que otras clases dentro del ensamblaje # F podría crear instancias de ella.
Sin embargo, el siempre informado Brian ha indicado que el compilador f # respeta esta configuración privada a pesar del tipo CLR subyacente, lo que significa que la única forma de crear instancias sería a través de la reflexión o mediante el uso del atributo InternalsVisibleTo.
Esto todavía puede ser aceptable para sus necesidades ...
me encanta el // truco que hará que a partir de ahora – ShuggyCoUk
Hola. Por favor, perdona mi ignorancia, pero ¿cuál es el truco '// ''? Estoy mirando el código y se comporta igual, con o sin él. Gracias. – user2916547