Ho progettato un provider di tipo semplice che fornisce tipi in base al mio parametro. Vorrei sapere se è possibile definire ProvidedTypeDefinitions che erediterebbe un'altra ProvidedTypeDefinition?ereditarietà del provider di tipo f #
So che staticamente posso effettuare le seguenti operazioni:
type People() = class end
type Student() =
inherit People()
type Teacher() =
inherit People()
e poi posso pattern match come questo usando Type Test Pattern:
let f (x:People) =
match x with
| :? Student -> "Student"
| :? Teacher -> "Teacher"
| _ -> "Nothing !!"
Quello che vorrei fare nella mia Tipo il fornitore è quello di creare ProvidedTypeDefinitions che ereditano un'altra ProvidedTypeDefinition. In modo tale che quando utilizzo il provider di tipi per generare questi tipi, posso eseguire lo schema di corrispondenza su di essi (ad esempio, so che in fase di esecuzione uno di questi tipi verrà instanciato ma non so quale, tranne che è una delle ProvidedTypeDefinitions).
Grazie per il vostro tempo!
Grazie per il vostro aiuto :). Il problema con questa soluzione è che TP non fornisce DU o Records. Non sarò in grado di fornire il tipo di 'Occupazione' che hai descritto. – Leleutch
Ciao Leleutch, Ho modificato la mia risposta per accettare il tipo di restrizione –