Tengo una interfaz con algunos métodos genéricos, y quería implementar un método con sobrecargas para aceptar una instancia de una clase, o su valor PK (que es un int o GUID pero no varía).Contraints genéricos en sobrecargas de métodos
I añaden a métodos similares a estos ejemplos:
void DoSomething<TKey>(TKey key) where TKey: struct;
void DoSomething<TModel>(TModel model) where TModel : class;
se destaca El 'HacerAlgo' nombre de método en el segundo de estos, y el error se
Type 'ISomeStuff' ya define un miembro llamado 'DoSomething' con los mismos tipos de parámetros.
Estoy sorprendido por esto ya que los parámetros me han definido claramente como de tipo diferente: uno es una clase y el otro una estructura.
¿Por qué no es esto suficiente para hacer que las firmas sean diferentes?
duplicado posible de [limitaciones genéricas, donde T: struct y donde T: Clase] (http://stackoverflow.com/questions/2974519/generic-constraints-where-t-struct-and-where- clase t). Véase también el artículo de Eric Lippert [aquí] (http://blogs.msdn.com/b/ericlippert/archive/2009/12/10/constraints-are-not-part-of-the-signature.aspx). –
@Frederic: ¡¿Cómo lo extrañé ?! –
Aparentemente, el panel "Relacionado" en la barra lateral tampoco lo recogió, por lo que podría ser más complicado de lo normal;) –