Quantcast
Channel: Uso avanzado de generics
Viewing all articles
Browse latest Browse all 4

Uso avanzado de generics

$
0
0
hola,

Podrias realizar algo como esto:

namespace Test 
 
    public abstract class EntidadIdentificada<T> 
    { 
 
        public T Identificador { getset; } 
 
        public static virtual R Procesar<R>(T param) 
        { 
            return new R(); 
        } 
 
    } 
 
    public class EntidadConcreta : EntidadIdentificada<Int32>  
    { 
        public static override R Procesar<R>(int param) 
        { 
            return base.Procesar<R>(param); 
        } 
 
    } 
 
    public class OtraEntidadConcreta : EntidadIdentificada<String>  
    { 
    } 
 
 
 
    public class Test 
    { 
 
        public void TestClass() 
        { 
             
            EntidadConcreta unObjeto = EntidadConcreta.Procesar<EntidadConcreta>(5); 
 
            OtraEntidadConcreta otroObjeto = OtraEntidadConcreta.Procesar<OtraEntidadConcreta>("cinco"); 
 
        } 
    } 
 

Me parecio raro el codigo cuando vi el metodo Porcesar() ahi colgado de la nada, a alguien debe pertenecer, y es a la abstracta.
Por supuesto lo bueno del virtual es que podras sobreescribirlo si necesitas algo custom en cada clase que heredes.

Saludos


Leandro Tuttini

Viewing all articles
Browse latest Browse all 4

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>