Ich versuche, verschiedene Erweiterungsverfahren für einen generischen Typen auf bestimmten generischen Typparameter in F #, aber die Sprache scheint nicht zu mir erlaubt, gebunden zu erstellen:Erweiterungsmethoden für bestimmte generische Typen
Was ich tun möchte, ist so etwas wie die folgenden:
type IEnumerable<int> with
member this.foo =
this.ToString()
Doch es gibt mir die Compiler-Fehler (Betonung der int
Schlüsselwort):
Unerwarteter Bezeichner im Typnamen. Erwarteter Infix-Operator, Anführungszeichen oder anderes Token.
Die folgende hat Arbeit, obwohl es nicht speziell auf die generischen Typparameter zu int
nicht bindet, wie ich will:
type IEnumerable<'a> with
member this.foo =
this.ToString()
Gibt es eine Möglichkeit, dieses Ziel in F # zu erreichen - bin ich Vielleicht nur mit der falschen Syntax? Wenn nicht, würde ich mich freuen, wenn jemand einen Workaround vorschlagen könnte, vielleicht irgendwo mit type constraints.
Scheint du bist in der Tat richtig. Danke trotzdem. – Noldorin
Diese Funktion wird von einem Vorschlag in der internen F # -Fehlerdatenbank "4548: Unterstützungserweiterungsmethoden für bestimmte Instantiierungen" verfolgt, es ist jedoch unwahrscheinlich, dass der Schnitt für die VS2010-Version vorgenommen wird. – Brian