Dopo un po 'di programmazione, una delle mie lezioni utilizzava i farmaci generici in un modo che non avevo mai visto prima. Vorrei alcune opinioni su questo, se è male codifica o meno.Uso strano di generici
abstract class Base<T> : where T : Base<T>
{
// omitted methods and properties.
virtual void CopyTo(T instance) { /*code*/ }
}
class Derived : Base<Derived>
{
override void CopyTo(Derived instance)
{
base.CopyTo(instance);
// copy remaining stuff here
}
}
questo è un uso OK di generici o no? Sto principalmente pensando al vincolo a "se stesso". A volte mi sembra che i generici possano "esplodere" in altre classi dove uso la classe Base.
In realtà non è molto raro, l'ho visto prima ... –
Ecco a cosa servono i generici. Probabilmente dovrei esporre un'interfaccia per renderla ancora più astratta. –
Perché è necessario che il tipo T sia una base? Non ho visto alcuna ragione per questo nel tuo campione, in realtà non riesco a capire perché lo stai usando, è tutto quello che mi manca? –