[ Foro de C# ]

Duda funcion sin usar parametros

19-May-2014 13:18
Invitado (Oscar)
1 Respuestas

Hola buenos dias a todos, a  ver si me podeis echar una mano:
Tengo estos dos metodos


 public static string LS(string id, string Campo = "", int limit_min = 0, int lim_max = 0, DataTable var = null)
        {
            string msg = "";
            string idioma = GetIdiomaForm();
            switch (id)
            {
                case "IDS_VERIFICAR_CAMPOS":
                    switch (idioma)
                    {
                        case "p":
                            msg = "Escreva um valor para o campo \"" + Campo + "\".";
                            break;
                        case "i":
                            msg = "Escriba un valor para el campo \"" + Campo + "\".";
                            break;
                        default:
                            msg = "Escriba un valor para el campo \"" + Campo + "\".";
                            break;
                    }
                    break;


--------------------------------------------------------------------------------------------------------------------
Y este otro


public static bool VerificarCampo(string Campo, string Valor, Control control, int limit_min = 0, int lim_max = 0, bool ValidarName = false, bool draw_msg = true)
        {
            string Salida = "";

            string idioma = GetIdiomaForm();

            Page Pagina = HttpContext.Current.CurrentHandler as Page;

            //if (Valor.Length == 0) Salida = (idioma == "p") ? "Escreva um valor para o campo \"" + Campo + "\"." : "Escriba un valor para el campo \"" + Campo + "\".";
            //if (Valor.Length == 0) Salida = LS("IDS_VERIFICAR_CAMPOS", Campo, limit_min, lim_max);
            if (Valor.Length == 0) Salida = LS("Escreva um valor para o campo ");
            //else if (limit_min != 0 && Valor.Length < limit_min) Salida = (idioma == "p") ? "Escreva pelo menos " + limit_min.ToString() + " caracteres no campo \"" + Campo + "\"." : "Escriba por lo menos " + limit_min.ToString() + " caracteres en el campo \"" + Campo + "\".";
            else if (limit_min != 0 && Valor.Length < limit_min) Salida = LS("IDS_VERIFICAR_CAMPOS_2", Campo, limit_min, lim_max);
            //else if (lim_max != 0 && Valor.Length > lim_max) Salida = (idioma == "p") ? "Escreva como máximo " + lim_max.ToString() + " caracteres no campo \"" + Campo + "\"." : "Escriba como máximo " + lim_max.ToString() + " caracteres en el campo \"" + Campo + "\".";
            else if (lim_max != 0 && Valor.Length > lim_max) Salida = LS("IDS_VERIFICAR_CAMPOS_3", Campo, limit_min, lim_max);
            //else if (ValidarName && !nombre_bien_escrito(Valor)) Salida = (idioma == "p") ? "Escreva uma carta, dígito e em branco no campo \"" + Campo + "\"." : "Escriba sólo letra, dígito y espacio en blanco en el campo \"" + Campo + "\".";
            else if (ValidarName && !nombre_bien_escrito(Valor)) Salida = LS("IDS_VERIFICAR_CAMPOS_4", Campo, limit_min, lim_max);

            if (Salida.Length > 0)
            {
                if (draw_msg) MakeMessage(Salida);
                control.Focus();
                return false;
            }
            return true;
        }



Actualmente funciona bien, pero me han pedido que la variable Campo que hay en VerificarCampo(),  la obtenga en LS(), pasando unicamente el string id, y eliminando el resto de parametros, alguna solucion?
Muchisimas Gracias


19-May-2014 19:55
Nacho Cabanes (+83)

Como todos los campos de tu función LS tienen valores por defecto, no hace falta que los indiques a no ser que vayas a cambiar su valor, de modo que en vez de hacer


LS("IDS_VERIFICAR_CAMPOS_4", Campo, limit_min, lim_max);


bastaría con


LS("IDS_VERIFICAR_CAMPOS_4");







(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)