Supponiamo che io ho un metodo generico come:Come vengono generati i metodi generici in C#?
void Fun<T>(FunArg arg) {}
Sono this.Fun<Feature>
e this.Fun<Category>
diverse istanze del metodo generico?
In generale, come viene istanziato il metodo generico? Argomenti generici diversi producono un metodo diverso o lo stesso metodo insieme a metadati diversi che vengono utilizzati in fase di runtime?
Si prega di sostenere la risposta con alcune quote dalla specifica della lingua.
Inoltre, immagino che ho fatto questi:
client.SomeEvent += this.Fun<Feature>; //line1
client.SomeEvent += this.Fun<Category>; //line2
client.SomeEvent += this.Fun<Result>; //line3
poi in seguito,
client.SomeEvent -= this.Fun<Feature>; //lineX
Condivide la lineX
annulla la cosa che ho fatto a line1
? O dipende anche da qualcos'altro?
Questo non è un codice valido per iniziare. Non è possibile utilizzare una conversione del gruppo di metodi come destinazione di una dichiarazione 'var'. Presenta codice valido e possiamo dare una risposta migliore. –
@JonSkeet: rimossa quella parte. – Nawaz
Quindi, a questo punto, cosa * esattamente * intendi per "istanziazione"? Più chiaro puoi essere nella tua domanda, più chiara è la tua risposta. –