ich zuerst dachte, dass dies zu schließen wäre, was man wollte:
type Foo<'a> private() =
static member Blah (a:'a) =
printfn "%A" a
wie das Idiom pre Seine C# 2.0 von selbst instantiable nur durch Reflexion oder durch die Klasse zu sein (was würde hoffentlich nicht tun es).
dies ist jedoch kompiliert bis:
[Serializable, CompilationMapping(SourceConstructFlags.ObjectType)]
public class Foo<a>
{
internal Foo() {...}
public static void Blah(a a) {...}
}
was bedeutet, dass andere Klassen innerhalb der f # Montage es instanziiert könnte. Der jemals informierte Brian hat jedoch darauf hingewiesen, dass der f # -Compiler trotz des zugrunde liegenden CLR-Typs diese private Einstellung respektiert, was bedeutet, dass die einzige Möglichkeit zur Instanziierung die Reflektion oder die Verwendung des Attributs InternalsVisibleTo ist.
Diese noch für Ihre Bedürfnisse akzeptabel sein kann ...
Liebe die // 'Trick wird das von jetzt an – ShuggyCoUk
Hallo. Bitte vergib meine Unwissenheit, aber was ist der Trick? Ich starre auf den Code und es verhält sich genauso, mit oder ohne es. Vielen Dank. – user2916547