Tutorial C#
Aplicación básica ¡Hola Mundo!
Básicamente una aplicación en C#
puede verse como un conjunto de uno o
más ficheros de código fuente con las instrucciones necesarias para que la
aplicación funcione como se desea y que son pasados al compilador para que
genere un ejecutable. Cada uno de estos ficheros no es más que un fichero de
texto plano escrito usando caracteres Unicode y siguiendo la sintaxis propia de
C#.
Como primer contacto con el
lenguaje, nada mejor que el típico programa de iniciación “¡Hola Mundo!” que lo
único que hace al ejecutarse es mostrar por pantalla el mensaje ¡Hola Mundo! Su código es:
1: class HolaMundo
2: {
3: static void Main()
4: {
5: System.Console.WriteLine(“¡Hola
Mundo!”);
6: }
7: }
Todo el código escrito en C# se
ha de escribir dentro de una definición de clase, y lo que en la línea 1: se dice es que se va a definir una
clase (class) de nombre HolaMundo1 cuya definición estará comprendida entre
la llave de apertura de la línea 2:
y su correspondiente llave de cierre en
la línea línea 7:
Dentro de la definición de la
clase (línea 3:) se define un método
de nombre Main cuyo código es el
indicado entre la llave de apertura de la línea 4: y su respectiva llave de cierre (línea 6:) Un método no es más que un conjunto de instrucciones a las que
se les asocia un nombre, de modo que para posteriormente ejecutarlas baste
referenciarlas por su nombre en vez de tener que reescribirlas.
La partícula que antecede al
nombre del método indica cuál es el tipo de valor que se devuelve tras la
ejecución del método, y en este caso es void
que significa que no se devuelve nada. Por su parte, los paréntesis que se
colocado tras el nombre del método indican cuáles son los parámetros éste toma,
y como en este caso están vacíos ello significa que el método no toma
parámetros. Los parámetros de un método permiten variar el resultado de su
ejecución según los valores que se les dé en cada llamada.
La palabra static que antecede a la declaración del tipo de valor devuelto es
un modificador
del significado de la declaración de método que indica que el método está asociado a la clase dentro de la que se
define y no a los objetos que se creen a partir de ella. Main() es lo que es denomina el punto de entrada de la aplicación, que no es más que el método por
el que comenzará su ejecución. Necesita del modificador static para evitar que
para llamarlo haya que crear algún objeto de la clase donde se haya definido.
Finalmente, la línea 5:
contiene la instrucción con el código a ejecutar, que lo que se hace es solicitar la ejecución del método WriteLine() de la clase Console definida en el espacio de
nombres System
pasándole como parámetro la cadena de texto con el contenido ¡Hola Mundo! Nótese que las cadenas de textos son
secuencias de caracteres delimitadas
por comillas dobles aunque dichas comillas no forman parte de la cadena. Por su
parte, un espacio de nombres puede considerarse que es algo similar para las
clases a lo que un directorio es para los ficheros; es decir, es una forma de
agruparlas.
El método WriteLine() se usará
muy a menudo en los próximos temas, por lo que es conveniente señalar ahora que
una forma de llamarlo que se utilizará en repetidas ocasiones consiste en
pasarle un número indefinido de otros
parámetros de cualquier tipo e incluir en el primero subcadenas de la forma {i}.
Con ello se consigue que se muestre por la ventana de consola la cadena que se
le pasa como primer parámetro pero sustituyéndole las subcadenas {i} por el valor convertido en cadena de texto del
parámetro que ocupe la posición i+2 en la llamada a WriteLine(). Por
ejemplo, la siguiente instrucción mostraría Tengo
5 años por pantalla si x valiese
5:
System.Console.WriteLine(“Tengo
{0} años”, x);
Para indicar cómo convertir cada
objeto en un cadena de texto basta redefinir su método ToString(), aunque
esto es algo que no se verá hasta el Tema 5: Clases.
Antes de seguir es importante
resaltar que C# es sensible a las mayúsculas, los que significa que no da igual
la capitalización con la que se escriban los identificadores. Es decir, no es
lo mismo escribir Console que COnsole o CONSOLE,
y si se hace de alguna de las dos últimas formas el compilador producirá un
error debido a que en el espacio de nombres System no existe
ninguna clase con dichos nombres. En este sentido, cabe señalar que un error
común entre programadores acostumbrados a Java es llamar al punto de entrada main en vez de Main,
lo que provoca un error al compilar ejecutables en tanto que el compilador no
detectará ninguna definición de punto de entrada.