C # Gleichheitsoperator aus F # implementieren

8

Ist es möglich, eine Implementierung für den Operator C # (==) in F # bereitzustellen?

BEARBEITEN :

Dieser Code:

%Vor%

Erzeugt die Compiler-Warnung:

The name '(=)' should not be used as a member name. To define equality semantics for a type, override the 'Object.Equals' member. If defining a static member for use from other CLI languages then use the name 'op_Equality' instead.

Der letzte Teil befasst sich mit dem, was ich versucht habe zu tun. Irgendeine Idee, warum op_Equality gegenüber einfach (=) favorisiert ist?

    
Daniel 12.11.2010, 19:15
quelle

3 Antworten

8

Ich habe es herausgefunden:

%Vor%     
Daniel 12.11.2010, 19:21
quelle
3

Suchen Sie nach Operator, der in F # überlädt?

Die verschiedenen Operatoren sind in CIL definiert, das Überladen des Ladens eines Operators in F # würde es in C #, VB.NET und jeder anderen .NET-Sprache, die diesen Operator unterstützt, überladen.

    
Oded 12.11.2010 19:18
quelle
2

Vermutlich wird op_Equality gegenüber (=) bevorzugt, da Letzteres so aussieht, als ob es den Gleichheitsoperator innerhalb von F # beeinflussen sollte. Das Verhalten des folgenden Codes könnte daher verwirrend sein:

%Vor%     
kvb 13.11.2010 03:17
quelle