Supongamos que tengo un método genérico como:¿Cómo se instancian los métodos genéricos en C#?
void Fun<T>(FunArg arg) {}
son this.Fun<Feature>
y this.Fun<Category>
diferentes instancias del método genérico?
En general, ¿cómo se instancia el método genérico? ¿Diferente argumento genérico produce un método diferente o el mismo método junto con diferentes metadatos que se usan en tiempo de ejecución?
Responda su respuesta con alguna cita de la especificación del idioma.
Además, supongo que sí los siguientes:
client.SomeEvent += this.Fun<Feature>; //line1
client.SomeEvent += this.Fun<Category>; //line2
client.SomeEvent += this.Fun<Result>; //line3
luego más tarde,
client.SomeEvent -= this.Fun<Feature>; //lineX
¿El lineX
deshacer lo que hice en line1
? ¿O depende de algo más también?
No es un código válido para empezar. No puede usar una conversión de grupo de métodos como el objetivo de una declaración 'var'. Presenta un código válido y podemos dar una mejor respuesta. –
@JonSkeet: Se eliminó esa parte. – Nawaz
Entonces, en este punto, ¿qué * exactamente * quiere decir con una "instanciación"? Mientras más clara sea su pregunta, más clara será su respuesta. –