Ésta es la clase genérica estoy trabajando con:C# anulación de hormigón de clase genérica
public interface IRepository<T> where T : EntityObject
{
RepositoryInstructionResult Add(T item);
RepositoryInstructionResult Update(T item);
RepositoryInstructionResult Delete(T item);
}
public class Repository<T> : IRepository<T> where T : EntityObject
{
RepositoryInstructionResult Add(T item)
{ //implementation}
RepositoryInstructionResult Update(T item);
{ //implementation}
RepositoryInstructionResult Delete(T item);
{ //implementation}
}
Ahora estoy mirando de vez en cuando para alterar el comportamiento de los métodos cuando t: un tipo específico. ¿Es posible algo como lo siguiente? Este intento particular da un error (Error 5: las declaraciones parciales de 'Repositorio' deben tener los mismos nombres de parámetros de tipo en el mismo orden).
public class Repository<Bar> //where Bar : EntityObject
{
RepositoryInstructionResult Add(Bar item)
{ //different implementation to Repository<T>.Add() }
//other methods inherit from Repository<T>
}
'BarRepository: Repositorio ...', y marcar los métodos augmentible como virtual/override en las clases base/niño, respectivamente. –
@Anthony: ¿Por qué no publicar eso como respuesta? (Que estaba a punto de publicar = P) – benjer3