Sto tentando di creare vari metodo di estensione per un tipo generico legato a specifici parametri di tipo generico in F #, ma la lingua non mi sembrano essere permettendo:metodi di estensione per specifici tipi generici
Quello che ho voglio fare è qualcosa di simile al seguente:
type IEnumerable<int> with
member this.foo =
this.ToString()
Eppure mi dà l'errore del compilatore (sottolineando la parola int
):
Identificatore imprevisto nel nome del tipo. Operatore infisso previsto, simbolo di quota o altro token.
Il seguente fa lavoro, anche se non specificamente associare il parametro di tipo generico per int
, come voglio:
type IEnumerable<'a> with
member this.foo =
this.ToString()
Esiste un modo per raggiungere questo obiettivo in F # - sono io forse solo usando la sintassi sbagliata? In caso contrario, sarei grato se qualcuno potesse suggerire una soluzione alternativa, magari usando vincoli di tipo da qualche parte.
Sembra che tu abbia ragione. Grazie comunque. – Noldorin
Questa funzionalità è tracciata da un suggerimento nel database di bug F # interno "4548: metodi di estensione del supporto per istanze di tipi specifici" ma è improbabile che sia possibile effettuare il taglio per la versione VS2010. – Brian