Propiedades en C sharp

Iniciado por DanielPy, 9 Junio 2013, 05:00 AM

0 Miembros y 1 Visitante están viendo este tema.

DanielPy

Hola a todos.
El código que les dejo a continuación tiene que ver en principio con las propiedades, que es lo que estoy estudiando en este momento,les sugeriría que me digan si el código(empleando propiedades) es correcto?.-
Además la consulta es para ver si me pueden dar una mano con el siguiente error,
si en "Ingrese nombre...:" aprieto la tecla Tab me acepta el dato como valido,eso no es correcto ¿como puedo solucionarlo?.-
       

Código (csharp) [Seleccionar]
using C = System.Console;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Propiedades
{

class Program
{

static void configuracion()
{
C.Title = "Ejemplo del uso de propiedades en C Sharp";
C.SetWindowSize(70,30);
C.BackgroundColor = System.ConsoleColor.Blue;
C.ForegroundColor = System.ConsoleColor.Yellow;
C.Clear();
}

static void ingDatos()
{
Personas per = new Personas();

byte mLeft = 2, mTop = 2;
while (true)
{
C.SetCursorPosition(mLeft, mTop);
C.Write("Ingrese nombre.....:");
string linea = C.ReadLine();
if (string.IsNullOrEmpty(linea))
{
mTop +=2;
C.SetCursorPosition(mLeft, mTop);
C.Write("El dato es obligatorio... (Pulse una tecla para continuar)");
C.ReadKey();
C.Write("                                                             ");
mTop -= 2;
}
else
{
per.nom = linea;
break;
}
}

mTop += 2;
while (true)
{
C.SetCursorPosition(mLeft, mTop);
C.Write("Ingrese apellido...:");
string linea = C.ReadLine();
if (string.IsNullOrEmpty(linea))
{
mTop += 2;
C.SetCursorPosition(mLeft,mTop);
C.Write("El dato es obligatorio... (Pulse una tecla para continuar)");
C.ReadKey();
C.Write("                                                             ");
mTop -= 2;
}
else
{
per.ape = linea;
break;
}

}

mTop += 2;
while (true)
{
byte n = 0;
C.SetCursorPosition(mLeft, mTop);
C.Write("Ingrese edad.......:");
if (byte.TryParse(C.ReadLine(), out n))
{
per.eda = n;
break;
}
else
{
mTop += 2;
C.SetCursorPosition(mLeft, mTop);
C.Write("Ingreso incorrecto... (Pulse una tecla para continuar)");
C.ReadKey();
C.Write("                                                             ");
mTop -= 2;
}
}
}

public class Personas
{
private string nombre;
private string apellido;
private byte edad;

public string nom
{
get { return nombre; }
set { nombre = value; }
}

public string ape
{
get { return apellido; }
set { apellido = value; }
}

public byte eda
{
get { return edad; }
set { edad = value; }
}
}

static void Main(string[] args)
{
configuracion();

ingDatos();

C.SetCursorPosition(02,08);
C.Write("Pulse una tecla para cerrar la aplicación...");
C.ReadLine();
}
}
}


Un gran saludo.-
Daniel
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-

43H4FH44H45H4CH49H56H45H

A la rapida puedes probar asi:
Código (csharp) [Seleccionar]
using C = System.Console;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Propiedades
{

    class Program
    {

        static void configuracion()
        {
            C.Title = "Ejemplo del uso de propiedades en C Sharp";
            C.SetWindowSize(70, 30);
            C.BackgroundColor = System.ConsoleColor.Blue;
            C.ForegroundColor = System.ConsoleColor.Yellow;
            C.Clear();
        }
        static bool bValido(string sCadena)
        {
            sCadena = sCadena.ToUpper();
            if (string.IsNullOrEmpty(sCadena)) return false;
            for (int i = 0; i < sCadena.Length; i++)
            {
                char cTemp = Convert.ToChar(sCadena[i]);
                int iAscii = (int)cTemp;
                if (!bAscii(iAscii)) return false;
            }
            return true;
        }
        static bool bAscii(int iAscii)
        {
            if (iAscii < 65 || iAscii > 91)
            {
                return false;
            }
            return true;
        }

        static void ingDatos()
        {
            Personas per = new Personas();

            byte mLeft = 2, mTop = 2;
            while (true)
            {
                C.SetCursorPosition(mLeft, mTop);
                C.Write("Ingrese nombre.....:");
                string linea = C.ReadLine();
                if (!bValido(linea))
                {
                    mTop += 2;
                    C.SetCursorPosition(mLeft, mTop);
                    C.Write("El dato es obligatorio... (Pulse una tecla para continuar)");
                    C.ReadKey();
                    C.Write("                                                             ");
                    mTop -= 2;
                }
                else
                {
                    per.nom = linea;
                    break;
                }
            }

            mTop += 2;
            while (true)
            {
                C.SetCursorPosition(mLeft, mTop);
                C.Write("Ingrese apellido...:");
                string linea = C.ReadLine();
                if (!bValido(linea))
                {
                    mTop += 2;
                    C.SetCursorPosition(mLeft, mTop);
                    C.Write("El dato es obligatorio... (Pulse una tecla para continuar)");
                    C.ReadKey();
                    C.Write("                                                             ");
                    mTop -= 2;
                }
                else
                {
                    per.ape = linea;
                    break;
                }

            }

            mTop += 2;
            while (true)
            {
                byte n = 0;
                C.SetCursorPosition(mLeft, mTop);
                C.Write("Ingrese edad.......:");
                if (byte.TryParse(C.ReadLine(), out n))
                {
                    per.eda = n;
                    break;
                }
                else
                {
                    mTop += 2;
                    C.SetCursorPosition(mLeft, mTop);
                    C.Write("Ingreso incorrecto... (Pulse una tecla para continuar)");
                    C.ReadKey();
                    C.Write("                                                             ");
                    mTop -= 2;
                }
            }
        }

        public class Personas
        {
            private string nombre;
            private string apellido;
            private byte edad;

            public string nom
            {
                get { return nombre; }
                set { nombre = value; }
            }

            public string ape
            {
                get { return apellido; }
                set { apellido = value; }
            }

            public byte eda
            {
                get { return edad; }
                set { edad = value; }
            }
        }

        static void Main(string[] args)
        {
            configuracion();

            ingDatos();

            C.SetCursorPosition(02, 08);
            C.Write("Pulse una tecla para cerrar la aplicación...");
            C.ReadLine();
        }
    }
}


Solo debe aceptar letras en nombre y apellido, hay que mejorarlo para lo que quieres.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

DanielPy

Hola.
Funciona como lo deseado, solo que por el momento no entiendo del todo la lógica, eso no me ocupa de momento.-
Solo 2 cositas,
Citarhay que mejorarlo para lo que quieres.
podrías ser más especifico, la otra, me podrías(an) dar un ejemplo como poner los 2 métodos en otro archivo y como llamarlo?.-(quiero hacer de esto como una biblioteca para utilizar en todos los programas que los pueda aplicar).-

Saludos y muchas gracias por tú tiempo.-
Daniel
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-

DanielPy

Hola.
Al fin viendo un vídeo de aprendiendo c sharp logré dividir el programa en 2 archivos.-
Gracias y espero tú respuesta 43H4FH44H45H4CH49H56H45H.-

Saludos.
Daniel
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor
y cuando lo abrazas dejan de causar dolor.-

43H4FH44H45H4CH49H56H45H

Con mejorar solo me referia a que reconozca un espacio entre 1er y 2do nombre o 1er y 2do apellido, porque el codigo que puse no acepta espacios.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W