Yo le pondría un atributo a cada valor del enum....

Daniel

El 4 de agosto de 2009 12:07, Leandro Tuttini
<[email protected]>escribió:

> hola,
>
> la verdad tengo una consulta basada en un codigo que implemente que no me
> gusta para nada como quedo, pero no se me ocurre muy bien como optimizarlo.
>
> El codigo que tengo es el siguiente:
>
>     enum VariableEnum
>     {
>         Profolio = 1,
>         Kits = 2,
>         Facturación = 3,
>         Lanzamientos = 4,
>         AccionesEspeciales = 5,
>         Compras = 7,
>         Cartera12Meses = 8,
>         CoberturaMeses = 9,
>         CategorizacionOtros = 10,
>         NivelEjecucionPortfolio = 12,
>         Cartera = 13
>     }
>
>
>
>     internal class ExcelVariablePosition
>     {
>         public string Cartera { get { return "11"; } }
>         public string Cartera12Meses { get { return "12"; } }
>         public string CoberturaMeses { get { return "13"; } }
>         public string CategorizacionOtros { get { return "14"; } }
>         public string NivelEjecucionPortfolio { get { return "15"; } }
>         public string Profolio { get { return "18"; } }
>         public string Lanzamientos { get { return "20"; } }
>         public string Kits { get { return "22"; } }
>         public string AccionesEspeciales { get { return "24"; } }
>         public string Compras { get { return "26"; } }
>         public string Facturación { get { return "30"; } }
>
>
>         #region GetValueByType
>
>         public string GetValueByType(VariableEnum var)
>         {
>             string valor = "";
>
>             switch (var)
>             {
>                 case VariableEnum.Cartera:
>                     valor = this.Cartera;
>                     break;
>                 case VariableEnum.Cartera12Meses:
>                     valor = this.Cartera12Meses;
>                     break;
>                 case VariableEnum.CoberturaMeses:
>                     valor = this.CoberturaMeses;
>                     break;
>                 case VariableEnum.CategorizacionOtros:
>                     valor = this.CategorizacionOtros;
>                     break;
>                 case VariableEnum.NivelEjecucionPortfolio:
>                     valor = this.NivelEjecucionPortfolio;
>                     break;
>                 case VariableEnum.Profolio:
>                     valor = this.Profolio;
>                     break;
>                 case VariableEnum.Lanzamientos:
>                     valor = this.Lanzamientos;
>                     break;
>                 case VariableEnum.Kits:
>                     valor = this.Kits;
>                     break;
>                 case VariableEnum.AccionesEspeciales:
>                     valor = this.AccionesEspeciales;
>                     break;
>                 case VariableEnum.Compras:
>                     valor = this.Compras;
>                     break;
>                 case VariableEnum.Facturación:
>                     valor = this.Facturación;
>                     break;
>             }
>
>             return valor;
>         }
>         #endregion
>
>     }
>
> como veran se trata de un enum, y segun este obtengo posiciones que luego
> seran utilizadas como veran en Excel para ubicar cierto dato.
>
> Se puede recuperar tanto por enum, como por acceso a la propeidad
> directamente.
>
> Basicamente la clase me resuelve posicionamiento en el excel, el
> procesamiento se realiza en otro lado, utilizando la info de esta clase.
>
> la pregunta es se puede eliminar el switch gigante ?
>
> Si se que diran que las posiciones tan fijas en el codigo, porque no
> utilizo un archivo de configuracion y las leo de ahi, lo habia pensado, pero
> no se si vale la pena arma seccion en el config para algo que una vez
> terminado nunca mas se movera de lugar en el excel, y si algo cambia
> compilar y hacer un deploy de la dll cuenta nada.
>
> gracias
> saludos
>
> ------------------------------
>
> Encontra las mejores recetas con Yahoo! Cocina.
> http://ar.mujer.yahoo.com/cocina/
>



-- 
Daniel A. Calvin
Cooperator Team Member
http://www.cooperator.com.ar
Microsoft Certified Professional

Responder a