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
