lunes, 30 de junio de 2008

CH01-02 - Primer programa en C# - Parte I

Como marca la tradición de cada libro y tutorial de cualquier lenguaje de programación, comenzaremos por el programa más simple que se puede escribir y veremos en detalle sus partes constitutivas.

- Código Fuente:
Todo programa consiste básicamente de una cierta cantidad de lineas de código fuente. Este código fuente es el que el desarrollador escribe en un archivo (en nuestro caso, archivos con extensión .cs).
Luego este archivo de código fuente es compilado a IL (Microsoft Intermediate Languaje). Al ejecutar el programa, el CLR convierte el código IL en código nativo para la plataforma sobre la que se esta ejecutando. Una vez compilado este código se guarda en un cache de memoria de tal forma que la próxima vez que es invocado está listo para ejecutarse sin necesidad de volver a compilarse.


namespace Tutorial
{
class HolaMundo
{
static void Main()
{
//Imprimir en pantalla
System.Console.WriteLine("Hola Mundo!");
}
}
}

Aunque es un ejemplo de lo mas simple, es muy útil para ilustrar diferentes conceptos del lenguaje. Veamos en detalle parte por parte.

-Clases:
Lo primero que notamos es la palabra reservada "class" en la tercera linea: **class HolaMundo**
La palabra reservada class crea un nuevo tipo. Un tipo es una cosa y el mundo está lleno de cosas como una mesa, una silla, el telefono, etc. El perro, mi hermano, mis hijos son cosas también. El cielo es una cosa, las ideas del amor y el honor son cosas.
Como podemos ver, somos una especie orientada a cosas (objetos) y C# es un lenguaje orientado a objetos también. Algunas cosas son concretas (mesa, silla) y otras son abstractas (amor, libertad) y C# tiene la habilidad de representar ambos tipos.

Una clase define una nueva cosa o una nueva entidad. Un objeto es una instancia de una clase. Por ejemplo la palabra perro describe la generalidad de la idea y mi perro Snoopy es una instancia de la clase perro, es un perro especifico.
De la misma forma, en una aplicación Windows, la palabra botón describe como son los botones y que capacidades poseen los botnoes de una aplicación y los botones Aceptar, Cancelar o Imprimir son instancias especificas de la clase botón.

Las clases definen nuevos tipos. Desde la perspectiva del lenguaje, un tipo describe el tamaño y las capacidades de los objetos. C# provee un número de tipos propios (built-in) como int, long, double, y al mismo tiempo como desarrolladores podemos crear nuestros propios tipos.


- Metodos:
Si miramos el codigo dentro de la clase, encontramos el metod main:


static void Main()
{
//Imprimir en pantalla
System.Console.WriteLine("Hola Mundo!");
}

Cada clase posee propiedades y comportamiento. De hecho, en C#, todo lo que sucede, sucede dentro de una clase. Por esta razón una clase no es solo una palabra clave del lenguaje sino es un concepto clave sobre el cual se fundamentan muchos otros conceptos.
El comportamiento de una clase está definido por sus métodos (funciones miembros). Los métodos son tipicamente nombres de acciones que un objeto determinado puede realizar, como por ejemplo ListarNombres o WriteLine. Cada programa debe tener un método especial llamado Main(), el cual no tiene un nombre de acción pero tiene un rol especial en cada programa: es el punto de entrada, esto significa que lo primero que se invoca al llamar a un programa es este método.

Otro aspecto de este metodo es que debe ser marcado como estatico, es decir anteponiendo la palabra reservada static. Mas adelante veremos que significa marcar un metodo con esta palabra reservada. Mientras tanto lo que necesitamos saber es que todo metodo Main() debe ser marcado como static.

De forma general, un metodo posee: un nombre, parametros y un tipo retornado. Cuando un métodono devuelve ningún tipo este tipo es void.
Por ejemplo veamos el siguiente codigo:


int SumarNumeros(int num1, int num2)
{
int resultado = 0;
resultado = num1 + num2;
return resultado;
}

El nombre del metodo es SumarNumeros al cual se le pasan dos parametros de tipo entero y retorna otro tipo entero. Las variables que se pasan por parámetro actúan como varibales locales al método y son destruídas al finalizar la invocación al método.

Veremos en mayor detalle los conceptos de variables, su ámbito y alcance, como asi también invocaciones a métodos. Lo que necesitamos concoer a este nivel es la utilidad de los metodos en una clase: manipular los datos de la clase y permitir la interacción con otros objetos.

En la siguiente entrada continuaremos con el análisis de nuestro primer programa en CSharp. Veremos otros conceptos claves: comentartios, el objeto Console y namespaces.

No hay comentarios.: