Curso de Programación en C#

[Comenzando con C#]

(Hoy daremos nuestros primeros pasos en C#)

Fecha: 09/Abr/2005 (02 de Abril de 2005)
Autor: Alejandro Domingo Velazquez Cruz vecrado@msn.com

 


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.

 


Anterior Índice Siguiente

ir al índice