f # Geben Sie die Anbietervererbung ein

8

Ich habe einen einfachen Typ-Provider entworfen, der Typen abhängig von meinen Parametern zur Verfügung stellt. Ich würde gerne wissen, ob es möglich ist, die Definition von "AskedTypeDefinitions" zu definieren, die eine andere "ExpectedTypeDefinition" erben würden?

Ich weiß, dass ich Folgendes statisch machen kann:

%Vor%

und dann kann ich mit Type Test Pattern eine Mustervorlage erstellen:

%Vor%

Was ich in meinem Type-Provider machen möchte, ist das Erstellen von DependedTypeDefinitions, die eine andere DeployedTypeDefinition erben. Wenn ich den Type-Provider verwende, um diese Typen zu erzeugen, kann ich eine Muster-Übereinstimmung auf ihnen finden (zum Beispiel weiß ich, dass zur Laufzeit einer dieser Typen instanziiert ist, aber ich weiß nicht welcher, außer dass es eine der DependentTypeDefinitions ist) ).

Danke für Ihre Zeit!

    
Leleutch 20.05.2016, 00:37
quelle

2 Antworten

1

Verwenden Sie eine diskriminierte Union für die Mustererkennung anstelle der Vererbung

%Vor% mit Objektvererbung in FSharp

Ich mag persönlich vermeiden aufgrund Upcasting und Downcasting . Zum Beispiel

%Vor%

Statt die Besatzung Logik empfehle ich immer analysieren der Student and Teacher los und lassen Menschen behandeln.

%Vor%     
Jeremy Bellows 05.08.2016 17:04
quelle
0

Die Vererbung zwischen den bereitgestellten Typen ist ziemlich schwierig. Sie können diesen Artikel lesen, um sich ein Bild darüber zu machen, wie Sie dies tun können, aber sogar in Sie werden sehen, dass der Autor trotz seiner besten Bemühungen wenig Erfolg hatte. Es scheint, dass die aktuelle Implementierung des Typ-Provider-Mechanismus in Bezug auf die Vererbung von bereitgestellten Typen von anderen bereitgestellten Typen nicht sehr entgegenkommend ist.

Mein Vorschlag für Sie ist viel einfacher, verwenden Sie einfach aktive Muster und Sie können auf alles, was Sie wollen, passen.

Edit: Sie müssen sogar keine aktiven Patterns verwenden, da Sie Patterns trotzdem nach dem Muster anpassen können.

    
Макс Федотов 02.03.2017 08:28
quelle

Tags und Links