viernes, 31 de marzo de 2017

Pro C#: Módulo 05: Laboratorio: Código Fuente

Codigo Fuente de Ejemplo

Serializar una clase a formato JSON


Cliente.cs


    /// <summary>
    /// Clase Cliente para Demostrar
    /// Serializar a JSON
    /// </summary>
    public class Cliente
    {
        //Propiedad que se implementa automática por el compilador
        public int CodCliente { get; set; }
        public long CUI { get; set; }


        private string mApellido;
        public string Apellido
        {
            get { return mApellido; }
            set {
                mApellido = value;
                mApellido = mApellido.ToUpper();
            }
        }

        private string mNombre;
        public string Nombre
        {
            get { return mNombre; }
            set { mNombre = value;
                mNombre = mNombre.ToUpper();
            }
        }

        /// <summary>
        /// Método Constructor
        /// </summary>
        /// <param name="Codigo"></param>
        /// <param name="CUI"></param>
        /// <param name="Nombre"></param>
        /// <param name="Apellido"></param>
        public Cliente(int Codigo, long CUI,
            string Nombre, string Apellido)
        {
            CodCliente = Codigo;
            this.CUI = CUI;
            this.Nombre = Nombre;
            this.Apellido = Apellido;
        }


    }


Program.cs


        static void TestSerializarJSON()
        {
            //Declaración de Objetos
            Cliente C1, C2;
            //Instanciar Objetos
            C1 = new Cliente(1, 22334455,
                "Annelis", "Samayoa");
            C2 = new Cliente(2, 2355991000,
                "Mariandrée", "Santizo");
            //Prueba de Serialización de JSON
            Console.WriteLine();
            Console.WriteLine("Prueba de JSON: ");
            string sJSON = "";
            sJSON = JsonConvert.SerializeObject(C1, Formatting.Indented);
            Console.WriteLine(sJSON);

            //Declara e Instancia una Lista
            List<Cliente> Clientes = new List<Cliente>();
            //Agrega Elementos a la Lista
            Clientes.Add(C1);
            Clientes.Add(C2);

            //Serializa la Lista
            Console.WriteLine("Prueba de Serialización de Lista");
            sJSON = "";
            sJSON = JsonConvert.SerializeObject(Clientes, Formatting.Indented);
            Console.WriteLine(sJSON);

            //Deserializar una Lista
            List<Cliente> NuevosClientes;
            NuevosClientes = JsonConvert.DeserializeObject<List<Cliente>>(
                sJSON);
            Console.WriteLine();
            Console.WriteLine("Deserializar una lista");
            foreach(Cliente xCliente in NuevosClientes)
            {
                Console.WriteLine(xCliente.Nombre);
            }
           
        }

        static void Main(string[] args)
        {
            //TestContador();
            //TestSemaforos();
            TestSerializarJSON();

            //Espera por una tecla presionada
            Console.ReadKey();

        }


Programación en C#: Módulo 02: Ejemplo Sobrecarga Métodos

Código Fuente Sobrecarga de Métodos, throw y Try/Catch



        /// <summary>
        /// Este método retorna un valor entero
        /// que lee desde la consola, el mensaje
        /// es un valor por omisión.
        /// </summary>
        /// <returns>Número Entero</returns>
        static int leerEntero()
        {
            int Numero = 0;          
            Numero = leerEntero(
                "Ingrese Número Entero? ");
            return Numero;
        }

        /// <summary>
        /// Este método retorna un valor entero
        /// que lee desde la consola,
        /// El Mensaje es el valor que despliega
        /// en la Pregunta al usuario
        /// </summary>
        /// <param name="Mensaje">Mensaje a Mostrar para Leer Dato</param>
        /// <returns>Entero</returns>
        static int leerEntero(string Mensaje)
        {
            int Numero = 0;
            bool EsNumero = false;
            string sNumero = "0";
            do {
                Console.Write(Mensaje + " ");
                sNumero = Console.ReadLine();
                EsNumero = int.TryParse(
                    sNumero, out Numero);
            } while ( !(EsNumero) );
            return Numero;
        }

        /// <summary>
        /// Lee un número de la consola
        /// Muestra un mensaje si el valor
        /// es inferior al Valor Mínimo
        /// </summary>
        /// <param name="Mensaje">Mensaje de Pregunta</param>
        /// <param name="ValorMinimo">Valor a Comparar</param>
        /// <returns>Entero</returns>
        static int leerEntero(string Mensaje,
            int ValorMinimo)
        {
            int Numero = 0;
            Numero = leerEntero(Mensaje);
            if (Numero<ValorMinimo)
            {
                Console.WriteLine();
                Console.WriteLine(
                    "El Número {1} debe ser Mayor a {0}",
                    ValorMinimo, Numero);
                Exception MiError =
                    new Exception("El Valor debe ser Mayor");
                throw MiError;
            }
            return Numero;
        }

        static void Main(string[] args)
        {
            //El número Mayor de 3 Numeros
            int A, B, C; string sMensaje;
            //Lee un Entero con Mensaje por Omisión
            A = leerEntero();
            //Lee un Entero con Mensaje Personalizado
            B = leerEntero("Ingrese Número B?");
            //Lee un Entero y Valida que sea Mayor que Otro Valor
            sMensaje = "Ingrese tercer número?";
            try
            {
                C = leerEntero(ValorMinimo: 500,
                        Mensaje: sMensaje);
            }
            catch (Exception)
            {
                Console.WriteLine(
                    "SE produjo un error");
            }
            Console.ReadKey();

        }