Je pensais au début que ce serait à ce que vous vouliez:
type Foo<'a> private() =
static member Blah (a:'a) =
printfn "%A" a
Être comme le pre langage C# 2.0 d'être instanciable que par réflexion ou par la classe elle-même (qui nous l'espérons ne pas faire il).
mais cela est compilé en:
[Serializable, CompilationMapping(SourceConstructFlags.ObjectType)]
public class Foo<a>
{
internal Foo() {...}
public static void Blah(a a) {...}
}
Ce qui implique que d'autres classes dans l'ensemble f # pourrait instancier. Cependant, Brian a toujours indiqué que le compilateur f # respecte ce paramètre privé malgré le type CLR sous-jacent, ce qui signifie que la seule façon d'instancier serait par réflexion ou en utilisant quelque chose comme l'attribut InternalsVisibleTo.
Cela peut encore être acceptable pour vos besoins ...
aimer le // 'tour fera à partir de maintenant – ShuggyCoUk
Salut. S'il vous plaît, pardonnez mon ignorance, mais quel est le truc de //? Je regarde le code et il se comporte de la même manière, avec ou sans. Je vous remercie. – user2916547