Ecco la classe generica con cui sto lavorando:C# Calcestruzzo override classe generica
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}
}
Ora sto cercando di modificare di tanto in tanto il comportamento dei metodi quando t: un tipo specifico. È qualcosa come il seguente possibile? Questo particolare tentativo restituisce un errore (Errore 5: le dichiarazioni parziali di "Repository" devono avere gli stessi nomi dei parametri di tipo nello stesso ordine).
public class Repository<Bar> //where Bar : EntityObject
{
RepositoryInstructionResult Add(Bar item)
{ //different implementation to Repository<T>.Add() }
//other methods inherit from Repository<T>
}
'BarRepository: Repository ...', e segnare i metodi augmentible come virtual/esclusione delle classi di base/bambini, rispettivamente. –
@Anthony: perché non postarlo come risposta? (Che stavo per postare = P) – benjer3