El Lenguaje de Programacion Csharp

download El Lenguaje de Programacion Csharp

of 260

  • date post

    22-Nov-2015
  • Category

    Documents

  • view

    134
  • download

    5

Embed Size (px)

Transcript of El Lenguaje de Programacion Csharp

  • El lenguaje de programacin C# ndice

    Jos Antonio Gonzlez Seco Pgina 1

    INTRODUCCIN A LA OBRA 7

    REQUISITOS PREVIOS RECOMENDADOS 7 ESTRUCTURA DE LA OBRA 7 CONVENCIONES DE NOTACIN UTILIZADAS 7

    TEMA 1: INTRODUCCIN A MICROSOFT.NET 9

    MICROSOFT.NET 9 COMMON LANGUAGE RUNTIME (CLR) 9 MICROSOFT INTERMEDIATE LANGUAGE (MSIL) 12 METADATOS 14 ENSAMBLADOS 15 LIBRERA DE CLASE BASE (BCL) 18 COMMON TYPE SYSTEM (CTS) 19 COMMON LANGUAGE SPECIFICATION (CLS) 19

    TEMA 2: INTRODUCCIN A C# 21

    ORIGEN Y NECESIDAD DE UN NUEVO LENGUAJE 21 CARACTERSTICAS DE C# 21 ESCRITURA DE APLICACIONES 26 APLICACIN BSICA HOLA MUNDO! 26 PUNTOS DE ENTRADA 28 COMPILACIN EN LNEA DE COMANDOS 28 COMPILACIN CON VISUAL STUDIO.NET 30

    TEMA 3: EL PREPROCESADOR 35

    CONCEPTO DE PREPROCESADOR 35 DIRECTIVAS DE PREPROCESADO 35 CONCEPTO DE DIRECTIVA. SINTAXIS 35 DEFINICIN DE IDENTIFICADORES DE PREPROCESADO 36 ELIMINACIN DE IDENTIFICADORES DE PREPROCESADO 37 COMPILACIN CONDICIONAL 37 GENERACIN DE AVISOS Y ERRORES 40 CAMBIOS EN LA NUMERACIN DE LNEAS 40 MARCACIN DE REGIONES DE CDIGO 41

    TEMA 4: ASPECTOS LXICOS 43

    COMENTARIOS 43 IDENTIFICADORES 44 PALABRAS RESERVADAS 44 LITERALES 46 OPERADORES 48

    TEMA 5: CLASES 55

  • El lenguaje de programacin C# ndice

    Jos Antonio Gonzlez Seco Pgina 2

    DEFINICIN DE CLASES 55 CONCEPTOS DE CLASE Y OBJETO 55 SINTAXIS DE DEFINICIN DE CLASES 55 CREACIN DE OBJETOS 58 OPERADOR NEW 58 CONSTRUCTOR POR DEFECTO 60 REFERENCIA AL OBJETO ACTUAL CON THIS 61 HERENCIA Y MTODOS VIRTUALES 61 CONCEPTO DE HERENCIA 61 LLAMADAS POR DEFECTO AL CONSTRUCTOR BASE 63 MTODOS VIRTUALES 64 CLASES ABSTRACTAS 66 LA CLASE PRIMEGENIA: SYSTEM.OBJECT 67 POLIMORFISMO 70 CONCEPTO DE POLIMORFISMO 70 MTODOS GENRICOS 71 DETERMINACIN DE TIPO. OPERADOR IS 72 ACCESO A LA CLASE BASE 72 DOWNCASTING 74 CLASES Y MTODOS SELLADOS 74 OCULTACIN DE MIEMBROS 75 MIEMBROS DE TIPO 81 ENCAPSULACIN 81

    TEMA 6: ESPACIOS DE NOMBRES 85

    CONCEPTO DE ESPACIO DE NOMBRES 85 DEFINICIN DE ESPACIOS DE NOMBRES 85 IMPORTACIN DE ESPACIOS DE NOMBRES 86 SENTENCIA USING 86 ESPECIFICACIN DE ALIAS 88 ESPACIO DE NOMBRES DISTRIBUIDOS 90

    TEMA 7: VARIABLES Y TIPOS DE DATOS 91

    DEFINICIN DE VARIABLES 91 TIPOS DE DATOS BSICOS 92 TABLAS 94 TABLAS UNIDIMENSIONALES 94 TABLAS DENTADAS 96 TABLAS MULTIDIMENSIONALES 97 TABLAS MIXTAS 99 COVARIANZA DE TABLAS 99 LA CLASE SYSTEM.ARRAY 99 CADENAS DE TEXTO 100 CONSTANTES 105 VARIABLES DE SLO LECTURA 106 ORDEN DE INICIALIZACIN DE VARIABLES 107

    TEMA 8: MTODOS 109

    CONCEPTO DE MTODO 109

  • El lenguaje de programacin C# ndice

    Jos Antonio Gonzlez Seco Pgina 3

    DEFINICIN DE MTODOS 109 LLAMADA A MTODOS 110 TIPOS DE PARMETROS. SINTAXIS DE DEFINICIN 111 PARMETROS DE ENTRADA 111 PARMETROS DE SALIDA 112 PARMETROS POR REFERENCIA 113 PARMETROS DE NMERO INDEFINIDO 113 SOBRECARGA DE TIPOS DE PARMETROS 114 MTODOS EXTERNOS 114 CONSTRUCTORES 115 CONCEPTO DE CONSTRUCTORES 115 DEFINICIN DE CONSTRUCTORES 116 LLAMADA AL CONSTRUCTOR 116 LLAMADAS ENTRE CONSTRUCTORES 117 CONSTRUCTOR POR DEFECTO 118 LLAMADAS POLIMRFICAS EN CONSTRUCTORES 119 CONSTRUCTOR DE TIPO 120 DESTRUCTORES 121

    TEMA 9: PROPIEDADES 125

    CONCEPTO DE PROPIEDAD 125 DEFINICIN DE PROPIEDADES 125 ACCESO A PROPIEDADES 126 IMPLEMENTACIN INTERNA DE PROPIEDADES 127

    TEMA 10: INDIZADORES 129

    CONCEPTO DE INDIZADOR 129 DEFINICIN DE INDIZADOR 129 ACCESO A INDIZADORES 130 IMPLEMENTACIN INTERNA DE INDIZADORES 131

    TEMA 11: REDEFINICIN DE OPERADORES 133

    CONCEPTO DE REDEFINICIN DE OPERADOR 133 DEFINICIN DE REDEFINICIONES DE OPERADORES 134 SINTAXIS GENERAL DE REDEFINICIN DE OPERADOR 134 REDEFINICIN DE OPERADORES UNARIOS 136 REDEFINICIN DE OPERADORES BINARIOS 137 REDEFINICIONES DE OPERADORES DE CONVERSIN 138

    TEMA 12: DELEGADOS Y EVENTOS 143

    CONCEPTO DE DELEGADO 143 DEFINICIN DE DELEGADOS 143 MANIPULACIN DE OBJETOS DELEGADOS 145 LA CLASE SYSTEM.MULTICASTDELEGATE 148 LLAMADAS ASNCRONAS 149 IMPLEMENTACIN INTERNA DE LOS DELEGADOS 152 EVENTOS 154

  • El lenguaje de programacin C# ndice

    Jos Antonio Gonzlez Seco Pgina 4

    CONCEPTO DE EVENTO 154 SINTAXIS BSICA DE DEFINICIN DE DELEGADOS 154 SINTAXIS COMPLETA DE DEFINICIN DE DELEGADOS 154

    TEMA 13: ESTRUCTURAS 157

    CONCEPTO DE ESTRUCTURA 157 DIFERENCIAS ENTRE CLASES Y ESTRUCTURAS 157 BOXING Y UNBOXING 158 CONSTRUCTORES 160

    TEMA 14: ENUMERACIONES 163

    CONCEPTO DE ENUMERACIN 163 DEFINICIN DE ENUMERACIONES 163 USO DE ENUMERACIONES 165 LA CLASE SYSTEM.ENUM 166

    TEMA 15: INTERFACES 167

    CONCEPTO DE INTERFAZ 167 DEFINICIN DE INTERFACES 167 IMPLEMENTACIN DE INTERFACES 169 ACCESO A MIEMBROS DE UNA INTERFAZ 172

    TEMA 16: INSTRUCCIONES 175

    CONCEPTO DE INSTRUCCIN 175 INSTRUCCIONES BSICAS 175 DEFINICIONES DE VARIABLES LOCALES 175 ASIGNACIONES 176 LLAMADAS A MTODOS 176 INSTRUCCIN NULA 176 INSTRUCCIONES CONDICIONALES 176 INSTRUCCIN IF 176 INSTRUCCIN SWITCH 177 INSTRUCCIONES ITERATIVAS 179 INSTRUCCIN WHILE 179 INSTRUCCIN DO...WHILE 180 INSTRUCCIN FOR 180 INSTRUCCIN FOREACH 181 INSTRUCCIONES DE EXCEPCIONES 185 CONCEPTO DE EXCEPCIN. 185 LA CLASE SYSTEM.EXCEPTION 186 EXCEPCIONES PREDEFINIDAS COMUNES 187 LANZAMIENTO DE EXCEPCIONES. INSTRUCCIN THROW 188 CAPTURA DE EXCEPCIONES. INSTRUCCIN TRY 188 INSTRUCCIONES DE SALTO 193 INSTRUCCIN BREAK 193 INSTRUCCIN CONTINUE 194 INSTRUCCIN RETURN 194

  • El lenguaje de programacin C# ndice

    Jos Antonio Gonzlez Seco Pgina 5

    INSTRUCCIN GOTO 194 INSTRUCCIN THROW 196 OTRAS INSTRUCCIONES 196 INSTRUCCIONES CHECKED Y UNCHECKED 196 INSTRUCCIN LOCK 197 INSTRUCCIN USING 198 INSTRUCCIN FIXED 200

    TEMA 17: ATRIBUTOS 201

    CONCEPTO DE ATRIBUTO 201 UTILIZACIN DE ATRIBUTOS 201 DEFINICIN DE NUEVOS ATRIBUTOS 203 ESPECIFICACIN DEL NOMBRE DEL ATRIBUTO 203 ESPECIFICACIN DEL USO DE UN ATRIBUTO 203 ESPECIFICACIN DE PARMETROS VLIDOS 205 LECTURA DE ATRIBUTOS EN TIEMPO DE EJECUCIN 205 ATRIBUTOS DE COMPILACIN 209 ATRIBUTO SYSTEM.ATTRIBUTEUSAGE 209 ATRIBUTO SYSTEM.OBSOLETE 209 ATRIBUTO SYSTEM.DIAGNOSTICS.CONDITIONAL 209

    TEMA 18: CDIGO INSEGURO 211

    CONCEPTO DE CDIGO INSEGURO 211 COMPILACIN DE CDIGOS INSEGUROS 211 MARCACIN DE CDIGOS INSEGUROS 212 DEFINICIN DE PUNTEROS 213 MANIPULACIN DE PUNTEROS 214 OBTENCIN DE DIRECCIN DE MEMORIA. OPERADOR & 214 ACCESO A CONTENIDO DE PUNTERO. OPERADOR * 215 ACCESO A MIEMBRO DE CONTENIDO DE PUNTERO. OPERADOR -> 215 CONVERSIONES DE PUNTEROS 216 ARITMTICA DE PUNTEROS 217 OPERADORES RELACIONADOS CON CDIGO INSEGURO 218 OPERADOR SIZEOF. OBTENCIN DE TAMAO DE TIPO 218 OPERADOR STACKALLOC. CREACIN DE TABLAS EN PILA. 219 FIJACIN DE VARIABLES APUNTADAS 220

    TEMA 19: DOCUMENTACIN XML 223

    CONCEPTO Y UTILIDAD DE LA DOCUMENTACIN XML 223 INTRODUCCIN A XML 223 COMENTARIOS DE DOCUMENTACIN XML 225 SINTAXIS GENERAL 225 EL ATRIBUTO CREF 225 ETIQUETAS RECOMENDADAS PARA DOCUMENTACIN XML 227 ETIQUETAS DE USO GENRICO 228 ETIQUETAS RELATIVAS A MTODOS 228 ETIQUETAS RELATIVAS A PROPIEDADES 229 ETIQUETAS RELATIVAS A EXCEPCIONES 230 ETIQUETAS RELATIVAS A FORMATO 230

  • El lenguaje de programacin C# ndice

    Jos Antonio Gonzlez Seco Pgina 6

    GENERACIN DE DOCUMENTACIN XML 232 GENERACIN A TRAVS DEL COMPILADOR EN LNEA DE COMANDOS 232 GENERACIN A TRAVS DE VISUAL STUDIO.NET 234 ESTRUCTURA DE LA DOCUMENTACIN XML 235 SEPARACIN ENTRE DOCUMENTACIN XML Y CDIGO FUENTE 237

    TEMA 20: EL COMPILADOR DE C# DE MICROSOFT 239

    INTRODUCCIN 239 SINTAXIS GENERAL DE USO DEL COMPILADOR 239 OPCIONES DE COMPILACIN 241 OPCIONES BSICAS 241 MANIPULACIN DE RECURSOS 244 CONFIGURACIN DE MENSAJES DE AVISOS Y ERRORES 245 FICHEROS DE RESPUESTA 247 OPCIONES DE DEPURACIN 249 COMPILACIN INCREMENTAL 250 OPCIONES RELATIVAS AL LENGUAJE 251 OTRAS OPCIONES 252 ACCESO AL COMPILADOR DESDE VISUAL STUDIO.NET 254

    DOCUMENTACIN DE REFERENCIA 257

    BIBLIOGRAFA 257 INFORMACIN EN INTERNET SOBRE C# 257 PORTALES 258 GRUPOS DE NOTICIAS Y LISTAS DE CORREO 258

  • El lenguaje de programacin C# Introduccin a la obra

    Jos Antonio Gonzlez Seco Pgina 7

    Introduccin a la obra

    Requisitos previos recomendados En principio, para entender con facilidad esta obra es recomendable estar familiarizado con los conceptos bsicos de programacin orientada a objetos, en particular con los lenguajes de programacin C++ o Java de los que C# deriva. Sin embargo, estos no son requisitos fundamentales para entenderla ya que cada vez que en ella se introduce algn elemento del lenguaje se definen y explican los conceptos bsicos que permiten entenderlo. An as, sigue siendo recomendable disponer de los requisitos antes mencionados para poder moverse con mayor soltura por el libro y aprovecharlo al mximo.

    Estructura de la obra Bsicamente el eje central de la obra es el lenguaje de programacin C#, del que no slo se describe su sintaxis sino que tambin se intenta explicar cules son las razones que justifican las decisiones tomadas en su diseo y cules son los errores ms difciles de detectar que pueden producirse al desarrollar de aplicaciones con l. Sin embargo, los 20 temas utilizados para ello pueden descomponerse en tres grandes bloques:

    Bloque 1: Introduccin a C# y .NET: Antes de empezar a describir el lenguaje es obligatorio explicar el porqu de su existencia, y para ello es necesario antes introducir la plataforma .NET de Microsoft con la que est muy ligado. Ese es el objetivo de los temas 1 y 2, donde se explican las caractersticas y conceptos bsicos de C# y .NET, las novedosas aportaciones de ambos y se introduce la programacin y compilacin de aplicaciones en C# con el tpico Hola Mundo!

    Bloque 2: Descripcin del lenguaje: Este bloque constituye el grueso de la

    obra y est formado por los temas comprendidos entre el 3 y el 19. En ellos se describen pormenorizadamente los aspectos del lenguaje mostrando