Introducción a C#
Este texto pretende ser una introducción a la programación de ordenadores en lenguaje C#.
Se ha revisado con la intención que su nivel sea el razonable para una asignatura de “Fundamentos de programación” o similar, aunque quizá algunos centros (especialmente universitarios) exijan un nivel más alto que el que se cubre.
Está organizado de una forma ligeramente distinta a los libros de texto “convencionales”, procurando incluir ejercicios prácticos lo antes posible, para evitar que un exceso de teoría en los primeros temas haga el texto pesado de seguir.
Aun así, este texto no pretende “sustituir a un profesor”, sino servir de apoyo para que los alumnos no pierdan tiempo en tomar apuntes. Pero es trabajo del profesor aclarar las dudas que surjan y proponer muchos más ejercicios que los que figuran aquí.
Este texto ha sido escrito por Nacho Cabanes. Si quiere conseguir la última versión, estará en mi página web:
La última versión de este curso, tanto para consultar en línea como en formato PDF, se podrá encontrar en el apartado sobre Lenguaje C#:
Este texto es de libre distribución (“gratis”). Se puede distribuir a otras personas libremente, siempre y cuando no se modifique.
Este texto se distribuye "tal cual", sin garantía de ningún tipo, implícita ni explícita. Aun así, mi intención es que resulte útil, así que le rogaría que me comunique cualquier error que encuentre.
Para cualquier sugerencia, no dude en contactar conmigo a través de mi web.
Contenido
- 1. Toma de contacto con C#
- 1.1 Escribir un texto en C (publicado 21-mar-2009)
- 1.2 Cómo probar este programa con Mono (25-mar-2009)
- 1.3 Mostrar números enteros en pantalla (28-mar-2009)
- 1.4 Operaciones aritméticas básicas (28-mar-2009)
- 1.5 Introducción a las variables: int (28-mar-2009)
- 1.6 Identificadores (01-abr-2009)
- 1.7 Comentarios (01-abr-2009)
- 1.8 Datos por el usuario: ReadLine (01-abr-2009)
- 2. Tipos de datos básicos
- 2.a Tipo de datos entero (04-abr-2009)
- 2.b Tipo de datos real (07-abr-2009)
- 2.c Tipos de datos carácter, cadena y booleano (10-abr-2009)
- 3. Estructuras de control
- 3.a if, sentencias compuestas, operadores relacionales (13-abr-2009)
- 3.b if y else (17-abr-2009)
- 3.c Operadores lógicos (20-abr-2009)
- 3.d Intro a los diagramas de flujo (25-abr-2009)
- 3.e Operador condicional (?) (25-abr-2009)
- 3.f switch (28-abr-2009)
- 3.g while, do..while, for (01-may-2009)
- 3.h break, continue, goto (05-may-2009)
- 3.i Diagramas de Chapin (09-may-2009)
- 3.j Cuándo usar cada tipo de bucle (15-may-2009)
- 4. Arrays, estructuras y cadenas de texto
- 4.a Conceptos básicos sobre arrays o tablas (25-may-2009)
- 4.b Tablas bidimensionales (29-may-2009)
- 4.c Estructuras o registros (01-jun-2009)
- 4.d Cadenas de caracteres (05-jun-2009)
- 4.e Ejemplo completo (10-jun-2009)
- 4.f Ordenaciones simples (28-nov-2009)
- 5. Funciones. Programación modular.
- 5.a Conceptos básicos sobre funciones (14-jun-2009)
- 5.b Parámetros de una función. Valor devuelto. (18-jun-2009)
- 5.c Variables locales y variables globales. Parámetros por referencia. (22-jun-2009)
- 5.d Algunas funciones útiles. Recursividad. (28-jun-2009)
- 5.e Parámetros y valor de retorno de "Main". (03-jul-2009)
- 6. Programación Orientada a Objetos.
- 6.a ¿Por qué los objetos? Objetos y clases en C# (07-jul-2009)
- 6.b Herencia y visibilidad (11-jul-2009)
- 6.c ¿Cómo se diseñan las clases? La palabra "static". Constructores y destructores. (15-jul-2009)
- 6.d Sobrecarga y polimorfismo. Orden de llamada de los constructores. (19-jul-2009)
- 6.e Arrays de objetos. Override. (22-jul-2009)
- 6.f Llamar a métodos de la clase padre. Sobrecarga de operadores. (25-jul-2009)
- 6.g Programas a partir de varios fuentes. (16-abr-2010)
- 7. Manejo de ficheros.
- 7.a Escritura en ficheros de texto. Lectura. Lectura hasta fin de fichero (29-jul-2009)
- 7.b Añadir a un fichero existente. Ficheros en otras carpetas. Saber si un fichero existe. (01-ago-2009)
- 7.c Más comprobaciones de errores: excepciones (10-ago-2009)
- 7.d Conceptos básicos sobre ficheros. Leer un byte de un fichero binario. Leer un bloque de un fichero binario. (15-ago-2009)
- 7.e La posición en el fichero. Escribir en un fichero binario. (04-sep-2009)
- 7.f Ejemplo: leer información de un fichero BMP. (08-sep-2009)
- 7.g Leer y escribir en un mismo fichero binario. (12-sep-2009)
- 8. Gestión dinámica de memoria.
- 8.a ¿Por qué? Pilas. Colas. (04-nov-2009)
- 8.b Listas: ArrayList y SortedList (08-nov-2009)
- 8.c Tablas Hash (13-nov-2009)
- 8.d Enumeradores (25-nov-2009)
- 8.e Una Pila usando Arrays (02-dic-2009)
- 8.f Punteros en C# (06-dic-2009)
- 09. Otras características avanzadas de C#.
- 9.a Espacios de nombres (11-dic-2009)
- 9.b Operaciones con bits (16-dic-2009)
- 9.c Enumeraciones (20-dic-2009)
- 9.d Propiedades. Parámetros de salida (27-dic-2009)
- 9.e Introducción a las expresiones regulares (02-ene-2010)
- 9.f El operador coma (09-ene-2010)
- 9.g Lo que no vamos a ver... (13-ene-2010)
- 10. Bibliotecas de uso frecuente.
- 10.a Más sobre la consola (25-sep-2009)
- 10.b Nociones básicas de entornos gráficos (29-sep-2009)
- 10.c Usando ventanas predefinidas (29-sep-2009)
- 10.d Una aplicación con dos ventanas (pronto)
- 10.e Otras posibilidades básicas de entornos gráficos (29-sep-2009)
- 10.f Dibujar desde Windows Forms (04-oct-2009)
- 10.g Fecha y hora. Temporización (08-oct-2009)
- 10.h Lectura de directorios (15-oct-2009)
- 10.i Entorno. Llamadas al sistema (21-oct-2009)
- 10.j Acceso a bases de datos con SQLite (28-oct-2009)
- 10.k Juegos con Tao.SDL (pronto)
- 10.l Algunos servicios de red (pronto)
- 11. Depuración, prueba y documentación de programas.
- 11.a Conceptos básicos sobre depuración (13-ene-2010)
- 11.b Depurando desde VS2008 Express (18-ene-2010)
- 11.c Prueba de programas (22-ene-2010)
- 11.d Documentación de programas (27-ene-2010)
- 11.e Generación automática de documentación (01-feb-2010)