Curso de Programación en C# [Comenzando con C#] Fecha: 09/Abr/2005 (02 de Abril de 2005)
|
Estructura de un Programa en C#
- Un programa en C# es una colección de Clases, Estructuras y Tipos - Dichos elementos pueden residir en uno o varios archivos - Todo es un objeto - C# diferencia Mayusculas y Minusculas - Utiliza los espacios de nombre para organizar las clases Debemos recordar que una clase es una conjunto de propiedades y los métodos para utilizarlas. Los elementos pueden residir en uno o más archivos, y un archivo puede contener una o todas las clases que integran una aplicación, asi mismo en C# todo es un objeto, esto gracias a que el lenguaje ha sido rediseñado por completo para permitir usar esos objetos como componentes de la aplicacion. El proceso en realidad es muy simple, al compilar una aplicacion C# la aplicacion no se compila directamente a lenguaje maquina, sino que se compila a codigo intermedio de Microsoft o MSIL, al ejecutar, este MSIL es el que vamos a distribuir, al usarse una funcion esa y solamente esa funcion se compila a codigo nativo, esto es lo que nos permite olvidarnos de la plataforma, de una manera similar a Java, aunque la diferencia radica en que Java siempre se interpreta a partir de su codigo intermedio, en cambio el MSIL se convierte a codigo nativo antes de ser utilizado, esto permite que las funciones se vayan compilando conforme se vayan utilizando minimizando el impacto al usuario, interesante ¿verdad?.Método Principal Main
- Es el punto de inicio de la aplicacion - Puede devolver void static void Main() - Puede devolver int static int Main() - Puede tomar argumentos static int Main(string[] args) En C# todas las aplicaciones deben tener un punto de inicio, que es el método Main, en Main es donde se crean los objetos y se ejecutan otros métodos, es un método estático que reside dentro de una clase o estructura y solo puede haber un Main por aplicación. El método Main puede o no recibir argumentos, dichos argumentos los recibe en forma de un array de strings unidimensional y contiene los argumentos que el programa recibe al ser invocado en la linea de comandos. En resúmen un programa en C# se ve más o menos así. using System; namespace Day1 { ////// Introducction to C# programming - Day 1 /// class Example { [STAThread] static void Main(string[] args) { Console.WriteLine("Hola Mundo"); } } }Tipos Predefinidos
En C# existen 2 tipos predefinidos: - Tipos por Valor: - Contienen una copia de los Datos que utilizan - Las operaciones que uno realiza con su copia no afectan las copias de los demas - Tipos por Referencia: - Contienen referencias a los Datos que utilizan - Dos o mas referencias pueden apuntar al mismo objeto - Las operaciones que uno realiza afectan a los demas Todos los tipos se definen en el espacio de nombre System, todos los tipos se derivan de System.Object y los que son por valor derivan de Syste.ValueType.Common Type System
Es el Sistema Comun de Tipos de la plataforma .NET(CTS), se encarga de definir la manera en que se declaran, utilizan y administran los tipos de datos en tiempo de ejecución, sin el sería posible la integración entre lenguajes, ya que aunque VB.NET y C# usan enteros de 32 bits la forma en que los representan y almacenan podria ser drasticamente diferente sino fuera porque utilizan el CTS. El CTS, lleva a cabo las siguientes funciones: - Establece un marco que permite la integración entre lenguajes, la seguridad de tipos y una ejecución de código de alto rendimiento. - Proporciona un modelo orientado a objetos que soporta la implementación completa de muchos lenguajes de programación. - Define las reglas que deben seguir los lenguajes, lo cual ayuda a asegurar que los objetos escritos en diferentes lenguajes pueden interactuar entre sí.Declaración de Variables
+ Declaración Sencilla - tipo_variable nombre_variable; + Declaración Multiple - tipo_variable nombre_variable1, nombre_variable2, ... nombre_variablen; NOTA: No se pueden utilizar variables no inicializadas. Una variable puede inicializarse al momento de ser declarada, ejemplo: int miEntero=0; o puede inicializarse después en el código, ejemplo: int miEntero; miEntero = 2;Instrucciones Condicionales
Las instrucciones condicionales o de selección se utilizan para determinar que código se debe ejecutar y cuándo se debe ejecutar. C# incluye dos instrucciones de selección la instrucción if que ejecuta código en base a una condición lógica y la instrucción switch que ejecuta código con base en un valor, pero debes tomar en cuenta que al utilizar la instrucción switch, puede especificar que se devuelva un valor numérico y una o más partes de código, que se ejecutarán dependiendo del resultado de la expresión. Instrucción IF Si la(expresión) hacer esto... de lo contrario hacer esto otro... EjemplO: if( i== 0 ) Console.WriteLine("No ahi datos"); else Console.WriteLine("Si ahi datos"); Instrucción SWITCH Compara(variable) caso variable=1: hacer esto... terminar caso variable=2: hacer esto... terminar caso no_coincidio: hacer esto... terminar Ejemplo: switch(i) { case 0: Console.WriteLine("No hubo inscritos"); break; case 1: Console.WriteLine("Si hubo inscritos"); break; default: Console.WriteLine("No se introdujo un numero valido"); break; }Instrucciones de Iteración
Las instrucciones de iteración permiten realizar una serie de operaciones una y otra vez mientras una condición dada se cumpla, en el caso de la instrucción while, el bloque de intrucciones se ejecutará mientras la expresión se cumpla, esto nos permite entrar al ciclo solo si la expresión da el valor que permita la entrada al ciclo, caso contrario no ejecutara ni siquiera una vez, a diferencia del while el do-while se ejecuta al menos una vez ya que la comparación de la condición se realiza al final, esto es sumamente útil para imprimir menús y pantallas que deben ser ejecutadas AL MENOS una vez mientras que el while nos permite evalua la condición primero y entonces entrar al ciclo. Además de estas dos instrucciones también tenemos el ciclo for que nos sirve principalmente para evaluar condiciones númericas donde una variable se va a estar incrementando continúamente, cabe destacar que un ciclo se usa en lugar de otro más que nada por comodidad, ya que todo ciclo for puede ser convertido en while, todo ciclo while puede ser adaptado a un do-while y todo do-while portado a for, bueno al menos esa es mi experiencia personal. Instrucción WHILE Mientras(expresión) hacer esto... Ejemplo: while( i<10 ) { i++; } Instrucción DO-WHILE Hacer esto... Mientras(expresión) Ejemplo: do { i++; }while(i<10); Instrucción FOR Para i = 0 mientras i<10 aumentar i++ hacer esto... Ejemplo: for( i=0 ; i<10 ; i++ ) { Console.WriteLine(i); } A continuación está un ejemplo de la iteración FOREACH, esta es algo nuevo a lo que algunos programadores pueden no estar familiarizados y nos sirve para recorrer arreglos, la instrucción se ejecutará en todos y cada uno de los elementos del arreglo. Instrucción FOREACH por cada perro en miArregloDePerros[] hacer esto... Ejemplo 1: foreach( perro miPerro in miArregloDePerros ) { Console.WriteLine(miPerro.nombre); } Ejemplo 2: foreach( int miEntero in miArregloDeEnteros ) { Console.WriteLine(miEntero.valor); }Operaciones básicas de entrada/salida
+ Utilizan la clase Console - Read: Lee el siguiente carácter de la entrada estándar. - ReadLine: Lee la siguiente línea de caracteres de la entrada estándar. - Write: Escribe la información específica en la salida estándar. - WriteLine: Escribe los datos especificados, seguidos de un terminador de línea actual, en la salida estándar. La clase Console no se puede heredar y ofrece un soporte básico para las aplicaciones que leen y escriben caracteres en la consola. Si la consola no existe como es el caso de las aplicaciones basadas en Windows, las escrituras a la consola no se despliegan en pantalla y ninguna excepción es generada. La entrada estándar o predefinida para la consola es el teclado y la salida predefinida es el monitor todo esto se lleva a cabo usando las propiedades IN, OUT y ERROR.