Optional Parameters

Digamos que tenemos la clase _Persona_ con una sobrecarga del constructor que nos permita crear una instancia sin el parámetro _lugarDeNacimiento_ e internamente asignar el valor “Venezuela” eso luciría así:

    public class Persona
        {
            #region propiedades
                public string DocumentoDeIdentificacion { get; set; }
                public string Nombre { get; set; }
                public string Apellido { get; set; }
                public string LugarDeNacimiento { get; set; }
            #endregion
        

            #region Constructor(s)
            public Persona(string documentoDeIdentificacion, string nombre,string apellido)
            {
                DocumentoDeIdentificacion = documentoDeIdentificacion;
                Nombre = nombre;
                Apellido= apellido;
                LugarDeNacimiento = "Venezuela";      
            }

            public Persona(string documentoDeIdentificacion, string nombre, string apellido, string lugarDeNacimiento)
            {
                DocumentoDeIdentificacion = documentoDeIdentificacion;
                Nombre = nombre;
                Apellido = apellido;
                LugarDeNacimiento = lugarDeNacimiento;
            }
            #endregion
        }

 

Ahora en C# 4.0 podemos ahorrarnos un poquito de código usando los parámetros opcionales. El valor que que indiquemos como predeterminado debe ser constante, no que se asigne el resultado de la llamada de un método.

 

public class Persona
        {
            #region propiedades
            public string DocumentoDeIdentificacion { get; set; }
            public string Nombre { get; set; }
            public string Apellido { get; set; }
            public string LugarDeNacimiento { get; set; }
            #endregion


            #region Constructor(s)
          
            public Persona(string documentoDeIdentificacion, string nombre, string apellido, string lugarDeNacimiento = "Venezuela")
            {
                DocumentoDeIdentificacion = documentoDeIdentificacion;
                Nombre = nombre;
                Apellido = apellido;
                LugarDeNacimiento = lugarDeNacimiento;
            }
            #endregion
        }

 

Ahora al momento de crear una instancia de persona podemos hacer:

class Program
    {
        static void Main(string[] args)
        {
            //Sin lugar de nacimiento
            Persona m_persona1 = new Persona("13828403", "Norberto", "Planchart");
            string m_lugar1 = m_persona1.LugarDeNacimiento;//El valor que tomara sera Venezuela

            //Con lugar de nacimiento
            Persona m_persona2 = new Persona("0111090", "Jose", "Planchart","Francia");
            string m_lugar2 = m_persona2.LugarDeNacimiento; //El valor que tomara sera Francia

            Console.WriteLine("Lugar nac. de persona 1: " + m_lugar1);
            Console.WriteLine("Lugar nac. de persona 2: " + m_lugar2);
          
            Console.ReadLine();
        }
    }

Como ven es una solución simple y limpia para implementar valores opcionales o predeterminados.

Aquí un link con el código del ejemplo:

http://dl.dropbox.com/u/26490398/c/nplanchart.wordpress.com_Optional_Parameters.zip

Una respuesta a “Optional Parameters

  1. Pingback: Named Parameters en C# 4.0 « Norberto Planchart [MCT]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s