libro csharp

Download Libro csharp

Post on 27-Jun-2015

92 views

Category:

Investor Relations

1 download

Embed Size (px)

DESCRIPTION

K

TRANSCRIPT

  • 1. El lenguaje de programacin C# ndiceINTRODUCCIN A LA OBRA 7REQUISITOS PREVIOS RECOMENDADOS 7ESTRUCTURA DE LA OBRA 7CONVENIOS DE NOTACIN 7TEMA 1: INTRODUCCIN A MICROSOFT.NET 9MICROSOFT.NET 9COMMON LANGUAGE RUNTIME (CLR) 9MICROSOFT INTERMEDIATE LANGUAGE (MSIL) 12METADATOS 14ENSAMBLADOS 15LIBRERA DE CLASE BASE (BCL) 18COMMON TYPE SYSTEM (CTS) 19COMMON LANGUAGE SPECIFICATION (CLS) 19TEMA 2: INTRODUCCIN A C# 21ORIGEN Y NECESIDAD DE UN NUEVO LENGUAJE 21CARACTERSTICAS DE C# 21ESCRITURA DE APLICACIONES 26APLICACIN BSICA HOLA MUNDO! 26PUNTOS DE ENTRADA 28COMPILACIN EN LNEA DE COMANDOS 28COMPILACIN CON VISUAL STUDIO.NET 30TEMA 3: EL PREPROCESADOR 35CONCEPTO DE PREPROCESADOR 35DIRECTIVAS DE PREPROCESADO 35CONCEPTO DE DIRECTIVA. SINTAXIS 35DEFINICIN DE IDENTIFICADORES DE PREPROCESADO 36ELIMINACIN DE IDENTIFICADORES DE PREPROCESADO 37COMPILACIN CONDICIONAL 37GENERACIN DE AVISOS Y ERRORES 40CAMBIOS EN LA NUMERACIN DE LNEAS 40MARCACIN DE REGIONES DE CDIGO 41TEMA 4: ASPECTOS LXICOS 43COMENTARIOS 43IDENTIFICADORES 44PALABRAS RESERVADAS 44LITERALES 46OPERADORES 48Jos Antonio Gonzlez Seco Pgina 1

2. El lenguaje de programacin C# ndiceTEMA 5: CLASES 55DEFINICIN DE CLASES 55CONCEPTOS DE CLASE Y OBJETO 55SINTAXIS DE DEFINICIN DE CLASES 55CREACIN DE OBJETOS 58OPERADOR NEW 58CONSTRUCTOR POR DEFECTO 60REFERENCIA AL OBJETO ACTUAL CON THIS 61HERENCIA Y MTODOS VIRTUALES 61CONCEPTO DE HERENCIA 61LLAMADAS POR DEFECTO AL CONSTRUCTOR BASE 63MTODOS VIRTUALES 64CLASES ABSTRACTAS 66LA CLASE PRIMEGENIA: SYSTEM.OBJECT 67POLIMORFISMO 70CONCEPTO DE POLIMORFISMO 70MTODOS GENRICOS 71DETERMINACIN DE TIPO. OPERADOR IS 72ACCESO A LA CLASE BASE 72DOWNCASTING 74CLASES Y MTODOS SELLADOS 74OCULTACIN DE MIEMBROS 75MIEMBROS DE TIPO 81ENCAPSULACIN 81TEMA 6: ESPACIOS DE NOMBRES 85CONCEPTO DE ESPACIO DE NOMBRES 85DEFINICIN DE ESPACIOS DE NOMBRES 85IMPORTACIN DE ESPACIOS DE NOMBRES 86SENTENCIA USING 86ESPECIFICACIN DE ALIAS 88ESPACIO DE NOMBRES DISTRIBUIDOS 90TEMA 7: VARIABLES Y TIPOS DE DATOS 91DEFINICIN DE VARIABLES 91TIPOS DE DATOS BSICOS 92TABLAS 94TABLAS UNIDIMENSIONALES 94TABLAS DENTADAS 96TABLAS MULTIDIMENSIONALES 97TABLAS MIXTAS 99COVARIANZA DE TABLAS 99LA CLASE SYSTEM.ARRAY 99CADENAS DE TEXTO 100CONSTANTES 105VARIABLES DE SLO LECTURA 106Jos Antonio Gonzlez Seco Pgina 2 3. El lenguaje de programacin C# ndiceORDEN DE INICIALIZACIN DE VARIABLES 107TEMA 8: MTODOS 109CONCEPTO DE MTODO 109DEFINICIN DE MTODOS 109LLAMADA A MTODOS 110TIPOS DE PARMETROS. SINTAXIS DE DEFINICIN 111PARMETROS DE ENTRADA 111PARMETROS DE SALIDA 112PARMETROS POR REFERENCIA 113PARMETROS DE NMERO INDEFINIDO 113SOBRECARGA DE TIPOS DE PARMETROS 114MTODOS EXTERNOS 114CONSTRUCTORES 115CONCEPTO DE CONSTRUCTORES 115DEFINICIN DE CONSTRUCTORES 116LLAMADA AL CONSTRUCTOR 116LLAMADAS ENTRE CONSTRUCTORES 117CONSTRUCTOR POR DEFECTO 118LLAMADAS POLIMRFICAS EN CONSTRUCTORES 119CONSTRUCTOR DE TIPO 120DESTRUCTORES 121TEMA 9: PROPIEDADES 125CONCEPTO DE PROPIEDAD 125DEFINICIN DE PROPIEDADES 125ACCESO A PROPIEDADES 126IMPLEMENTACIN INTERNA DE PROPIEDADES 127TEMA 10: INDIZADORES 129CONCEPTO DE INDIZADOR 129DEFINICIN DE INDIZADOR 129ACCESO A INDIZADORES 130IMPLEMENTACIN INTERNA DE INDIZADORES 131TEMA 11: REDEFINICIN DE OPERADORES 133CONCEPTO DE REDEFINICIN DE OPERADOR 133DEFINICIN DE REDEFINICIONES DE OPERADORES 134SINTAXIS GENERAL DE REDEFINICIN DE OPERADOR 134REDEFINICIN DE OPERADORES UNARIOS 136REDEFINICIN DE OPERADORES BINARIOS 137REDEFINICIONES DE OPERADORES DE CONVERSIN 138TEMA 12: DELEGADOS Y EVENTOS 143Jos Antonio Gonzlez Seco Pgina 3 4. El lenguaje de programacin C# ndiceCONCEPTO DE DELEGADO 143DEFINICIN DE DELEGADOS 143MANIPULACIN DE OBJETOS DELEGADOS 145LA CLASE SYSTEM.MULTICASTDELEGATE 148LLAMADAS ASNCRONAS 149IMPLEMENTACIN INTERNA DE LOS DELEGADOS 152EVENTOS 154CONCEPTO DE EVENTO 154SINTAXIS BSICA DE DEFINICIN DE DELEGADOS 154SINTAXIS COMPLETA DE DEFINICIN DE DELEGADOS 154TEMA 13: ESTRUCTURAS 157CONCEPTO DE ESTRUCTURA 157DIFERENCIAS ENTRE CLASES Y ESTRUCTURAS 157BOXING Y UNBOXING 158CONSTRUCTORES 160TEMA 14: ENUMERACIONES 163CONCEPTO DE ENUMERACIN 163DEFINICIN DE ENUMERACIONES 164USO DE ENUMERACIONES 165LA CLASE SYSTEM.ENUM 166ENUMERACIONES DE FLAGS 168TEMA 15: INTERFACES 171CONCEPTO DE INTERFAZ 171DEFINICIN DE INTERFACES 171IMPLEMENTACIN DE INTERFACES 173ACCESO A MIEMBROS DE UNA INTERFAZ 176TEMA 16: INSTRUCCIONES 179CONCEPTO DE INSTRUCCIN 179INSTRUCCIONES BSICAS 179DEFINICIONES DE VARIABLES LOCALES 179ASIGNACIONES 180LLAMADAS A MTODOS 180INSTRUCCIN NULA 180INSTRUCCIONES CONDICIONALES 180INSTRUCCIN IF 180INSTRUCCIN SWITCH 181INSTRUCCIONES ITERATIVAS 183INSTRUCCIN WHILE 183INSTRUCCIN DO...WHILE 184INSTRUCCIN FOR 184Jos Antonio Gonzlez Seco Pgina 4 5. El lenguaje de programacin C# ndiceINSTRUCCIN FOREACH 185INSTRUCCIONES DE EXCEPCIONES 189CONCEPTO DE EXCEPCIN. 189LA CLASE SYSTEM.EXCEPTION 190EXCEPCIONES PREDEFINIDAS COMUNES 191LANZAMIENTO DE EXCEPCIONES. INSTRUCCIN THROW 192CAPTURA DE EXCEPCIONES. INSTRUCCIN TRY 192INSTRUCCIONES DE SALTO 197INSTRUCCIN BREAK 197INSTRUCCIN CONTINUE 198INSTRUCCIN RETURN 198INSTRUCCIN GOTO 198INSTRUCCIN THROW 200OTRAS INSTRUCCIONES 200INSTRUCCIONES CHECKED Y UNCHECKED 200INSTRUCCIN LOCK 201INSTRUCCIN USING 202INSTRUCCIN FIXED 204TEMA 17: ATRIBUTOS 205CONCEPTO DE ATRIBUTO 205UTILIZACIN DE ATRIBUTOS 205DEFINICIN DE NUEVOS ATRIBUTOS 207ESPECIFICACIN DEL NOMBRE DEL ATRIBUTO 207ESPECIFICACIN DEL USO DE UN ATRIBUTO 207ESPECIFICACIN DE PARMETROS VLIDOS 209LECTURA DE ATRIBUTOS EN TIEMPO DE EJECUCIN 209ATRIBUTOS DE COMPILACIN 213ATRIBUTO SYSTEM.ATTRIBUTEUSAGE 213ATRIBUTO SYSTEM.OBSOLETE 213ATRIBUTO SYSTEM.DIAGNOSTICS.CONDITIONAL 213TEMA 18: CDIGO INSEGURO 215CONCEPTO DE CDIGO INSEGURO 215COMPILACIN DE CDIGOS INSEGUROS 215MARCACIN DE CDIGOS INSEGUROS 216DEFINICIN DE PUNTEROS 217MANIPULACIN DE PUNTEROS 218OBTENCIN DE DIRECCIN DE MEMORIA. OPERADOR & 218ACCESO A CONTENIDO DE PUNTERO. OPERADOR * 219ACCESO A MIEMBRO DE CONTENIDO DE PUNTERO. OPERADOR -> 219CONVERSIONES DE PUNTEROS 220ARITMTICA DE PUNTEROS 221OPERADORES RELACIONADOS CON CDIGO INSEGURO 222OPERADOR SIZEOF. OBTENCIN DE TAMAO DE TIPO 222OPERADOR STACKALLOC. CREACIN DE TABLAS EN PILA. 223FIJACIN DE VARIABLES APUNTADAS 224Jos Antonio Gonzlez Seco Pgina 5 6. El lenguaje de programacin C# ndiceTEMA 19: DOCUMENTACIN XML 227CONCEPTO Y UTILIDAD DE LA DOCUMENTACIN XML 227INTRODUCCIN A XML 227COMENTARIOS DE DOCUMENTACIN XML 229SINTAXIS GENERAL 229EL ATRIBUTO CREF 229ETIQUETAS RECOMENDADAS PARA DOCUMENTACIN XML 231ETIQUETAS DE USO GENRICO 232ETIQUETAS RELATIVAS A MTODOS 232ETIQUETAS RELATIVAS A PROPIEDADES 233ETIQUETAS RELATIVAS A EXCEPCIONES 234ETIQUETAS RELATIVAS A FORMATO 234GENERACIN DE DOCUMENTACIN XML 236GENERACIN A TRAVS DEL COMPILADOR EN LNEA DE COMANDOS 236GENERACIN A TRAVS DE VISUAL STUDIO.NET 238ESTRUCTURA DE LA DOCUMENTACIN XML 239SEPARACIN ENTRE DOCUMENTACIN XML Y CDIGO FUENTE 241TEMA 20: EL COMPILADOR DE C# DE MICROSOFT 243INTRODUCCIN 243SINTAXIS GENERAL DE USO DEL COMPILADOR 243OPCIONES DE COMPILACIN 245OPCIONES BSICAS 245MANIPULACIN DE RECURSOS 248CONFIGURACIN DE MENSAJES DE AVISOS Y ERRORES 249FICHEROS DE RESPUESTA 251OPCIONES DE DEPURACIN 253COMPILACIN INCREMENTAL 254OPCIONES RELATIVAS AL LENGUAJE 255OTRAS OPCIONES 256ACCESO AL COMPILADOR DESDE VISUAL STUDIO.NET 258DOCUMENTACIN DE REFERENCIA 261BIBLIOGRAFA 261INFORMACIN EN INTERNET SOBRE C# 261PORTALES 262GRUPOS DE NOTICIAS Y LISTAS DE CORREO 262Jos Antonio Gonzlez Seco Pgina 6 7. El lenguaje de programacin C# Introduccin a la obraIntroduccin a la obraRequisitos previos recomendadosEn principio, para entender con facilidad esta obra es recomendable estar familiarizadocon los conceptos bsicos de programacin orientada a objetos, en particular con loslenguajes de programacin C++ o Java de los que C# deriva.Sin embargo, estos no son requisitos fundamentales para entenderla ya que cada vez queen ella se introduce algn elemento del lenguaje se definen y explican los conceptosbsicos que permiten entenderlo. An as, sigue siendo recomendable disponer de losrequisitos antes mencionados para poder moverse con mayor soltura por el libro yaprovecharlo al mximo.Estructura de la obraBsicamente el eje central de la obra es el lenguaje de programacin C#, del que no slose describe su sintaxis sino que tambin se intenta explicar cules son las razones quejustifican las decisiones tomadas en su diseo y cules son los errores ms difciles dedetectar que pueden producirse al desarrollar de aplicaciones con l. Sin embargo, los20 temas utilizados para ello pueden descomponerse en tres grandes bloques: Bloque 1: Introduccin a C# y .NET: Antes de empezar a describir el lenguajees obligatorio explicar el porqu de su existencia, y para ello es necesario antesintroducir la plataforma .NET de Microsoft con la que est muy ligado. Ese es elobjetivo de los temas 1 y 2, donde se explican las caractersticas y conceptosbsicos de C# y .NET, las novedosas aportaciones de ambos y se introduce laprogramacin y compilacin de aplicaciones en C# con el tpico Hola Mundo! Bloque 2: Descripcin del lenguaje: Este bloque constituye el grueso de laobra y est formado por los temas comprendidos entre el 3 y el 19. En ellos sedescriben pormenorizadamente los aspectos del lenguaje mostrando ejemplos desu uso, explicando su porqu y avisando de cules son los problemas msdifciles de detectar que pueden surgir al utilizarlos y cmo evitarlos. Bloque 3: Descripcin del compilador: Este ltimo bloque, formado solamentepor el tema 20, describe cmo se utiliza el compilador de C# tanto desde laventana de consola como desde la herramienta Visual Studio.NET. Como aldescribir el lenguaje, tambin se intenta dar una explicacin lo ms exhaustiva,til y fcil de entender posible del significado, porqu y aplicabilidad de lasopciones de compilacin que ofrece.Convenios de notacinJos Antonio Gonzlez Seco Pgina 7 8. El lenguaje de programacin C# Introduccin a la obraPara ayudar a resaltar la informacin clave se utilizan diferentes convenciones respectoa los tipos de letra usados para representar cada tipo de c