Publicado el 14 de Enero del 2017
10.277 visualizaciones desde el 14 de Enero del 2017
1,6 MB
260 paginas
Creado hace 20a (22/07/2003)
El lenguaje de programación C#
Índice
INTRODUCCIÓN A LA OBRA
REQUISITOS PREVIOS RECOMENDADOS
ESTRUCTURA DE LA OBRA
CONVENCIONES DE NOTACIÓN UTILIZADAS
TEMA 1: INTRODUCCIÓN A MICROSOFT.NET
MICROSOFT.NET
COMMON LANGUAGE RUNTIME (CLR)
MICROSOFT INTERMEDIATE LANGUAGE (MSIL)
METADATOS
ENSAMBLADOS
LIBRERÍA DE CLASE BASE (BCL)
COMMON TYPE SYSTEM (CTS)
COMMON LANGUAGE SPECIFICATION (CLS)
TEMA 2: INTRODUCCIÓN A C#
ORIGEN Y NECESIDAD DE UN NUEVO LENGUAJE
CARACTERÍSTICAS DE C#
ESCRITURA DE APLICACIONES
APLICACIÓN BÁSICA ¡HOLA MUNDO!
PUNTOS DE ENTRADA
COMPILACIÓN EN LÍNEA DE COMANDOS
COMPILACIÓN CON VISUAL STUDIO.NET
TEMA 3: EL PREPROCESADOR
CONCEPTO DE PREPROCESADOR
DIRECTIVAS DE PREPROCESADO
CONCEPTO DE DIRECTIVA. SINTAXIS
DEFINICIÓN DE IDENTIFICADORES DE PREPROCESADO
ELIMINACIÓN DE IDENTIFICADORES DE PREPROCESADO
COMPILACIÓN CONDICIONAL
GENERACIÓN DE AVISOS Y ERRORES
CAMBIOS EN LA NUMERACIÓN DE LÍNEAS
MARCACIÓN DE REGIONES DE CÓDIGO
TEMA 4: ASPECTOS LÉXICOS
COMENTARIOS
IDENTIFICADORES
PALABRAS RESERVADAS
LITERALES
OPERADORES
TEMA 5: CLASES
7
7
7
7
9
9
9
12
14
15
18
19
19
21
21
21
26
26
28
28
30
35
35
35
35
36
37
37
40
40
41
43
43
44
44
46
48
55
José Antonio González Seco
Página 1
El lenguaje de programación C#
Índice
DEFINICIÓN DE CLASES
CONCEPTOS DE CLASE Y OBJETO
SINTAXIS DE DEFINICIÓN DE CLASES
CREACIÓN DE OBJETOS
OPERADOR NEW
CONSTRUCTOR POR DEFECTO
REFERENCIA AL OBJETO ACTUAL CON THIS
HERENCIA Y MÉTODOS VIRTUALES
CONCEPTO DE HERENCIA
LLAMADAS POR DEFECTO AL CONSTRUCTOR BASE
MÉTODOS VIRTUALES
CLASES ABSTRACTAS
LA CLASE PRIMEGENIA: SYSTEM.OBJECT
POLIMORFISMO
CONCEPTO DE POLIMORFISMO
MÉTODOS GENÉRICOS
DETERMINACIÓN DE TIPO. OPERADOR IS
ACCESO A LA CLASE BASE
DOWNCASTING
CLASES Y MÉTODOS SELLADOS
OCULTACIÓN DE MIEMBROS
MIEMBROS DE TIPO
ENCAPSULACIÓN
TEMA 6: ESPACIOS DE NOMBRES
CONCEPTO DE ESPACIO DE NOMBRES
DEFINICIÓN DE ESPACIOS DE NOMBRES
IMPORTACIÓN DE ESPACIOS DE NOMBRES
SENTENCIA USING
ESPECIFICACIÓN DE ALIAS
ESPACIO DE NOMBRES DISTRIBUIDOS
TEMA 7: VARIABLES Y TIPOS DE DATOS
DEFINICIÓN DE VARIABLES
TIPOS DE DATOS BÁSICOS
TABLAS
TABLAS UNIDIMENSIONALES
TABLAS DENTADAS
TABLAS MULTIDIMENSIONALES
TABLAS MIXTAS
COVARIANZA DE TABLAS
LA CLASE SYSTEM.ARRAY
CADENAS DE TEXTO
CONSTANTES
VARIABLES DE SÓLO LECTURA
ORDEN DE INICIALIZACIÓN DE VARIABLES
TEMA 8: MÉTODOS
CONCEPTO DE MÉTODO
55
55
55
58
58
60
61
61
61
63
64
66
67
70
70
71
72
72
74
74
75
81
81
85
85
85
86
86
88
90
91
91
92
94
94
96
97
99
99
99
100
105
106
107
109
109
José Antonio González Seco
Página 2
El lenguaje de programación C#
Índice
DEFINICIÓN DE MÉTODOS
LLAMADA A MÉTODOS
TIPOS DE PARÁMETROS. SINTAXIS DE DEFINICIÓN
PARÁMETROS DE ENTRADA
PARÁMETROS DE SALIDA
PARÁMETROS POR REFERENCIA
PARÁMETROS DE NÚMERO INDEFINIDO
SOBRECARGA DE TIPOS DE PARÁMETROS
MÉTODOS EXTERNOS
CONSTRUCTORES
CONCEPTO DE CONSTRUCTORES
DEFINICIÓN DE CONSTRUCTORES
LLAMADA AL CONSTRUCTOR
LLAMADAS ENTRE CONSTRUCTORES
CONSTRUCTOR POR DEFECTO
LLAMADAS POLIMÓRFICAS EN CONSTRUCTORES
CONSTRUCTOR DE TIPO
DESTRUCTORES
TEMA 9: PROPIEDADES
CONCEPTO DE PROPIEDAD
DEFINICIÓN DE PROPIEDADES
ACCESO A PROPIEDADES
IMPLEMENTACIÓN INTERNA DE PROPIEDADES
TEMA 10: INDIZADORES
CONCEPTO DE INDIZADOR
DEFINICIÓN DE INDIZADOR
ACCESO A INDIZADORES
IMPLEMENTACIÓN INTERNA DE INDIZADORES
TEMA 11: REDEFINICIÓN DE OPERADORES
CONCEPTO DE REDEFINICIÓN DE OPERADOR
DEFINICIÓN DE REDEFINICIONES DE OPERADORES
SINTAXIS GENERAL DE REDEFINICIÓN DE OPERADOR
REDEFINICIÓN DE OPERADORES UNARIOS
REDEFINICIÓN DE OPERADORES BINARIOS
REDEFINICIONES DE OPERADORES DE CONVERSIÓN
TEMA 12: DELEGADOS Y EVENTOS
CONCEPTO DE DELEGADO
DEFINICIÓN DE DELEGADOS
MANIPULACIÓN DE OBJETOS DELEGADOS
LA CLASE SYSTEM.MULTICASTDELEGATE
LLAMADAS ASÍNCRONAS
IMPLEMENTACIÓN INTERNA DE LOS DELEGADOS
EVENTOS
José Antonio González Seco
109
110
111
111
112
113
113
114
114
115
115
116
116
117
118
119
120
121
125
125
125
126
127
129
129
129
130
131
133
133
134
134
136
137
138
143
143
143
145
148
149
152
154
Página 3
El lenguaje de programación C#
Índice
CONCEPTO DE EVENTO
SINTAXIS BÁSICA DE DEFINICIÓN DE DELEGADOS
SINTAXIS COMPLETA DE DEFINICIÓN DE DELEGADOS
TEMA 13: ESTRUCTURAS
CONCEPTO DE ESTRUCTURA
DIFERENCIAS ENTRE CLASES Y ESTRUCTURAS
BOXING Y UNBOXING
CONSTRUCTORES
TEMA 14: ENUMERACIONES
CONCEPTO DE ENUMERACIÓN
DEFINICIÓN DE ENUMERACIONES
USO DE ENUMERACIONES
LA CLASE SYSTEM.ENUM
TEMA 15: INTERFACES
CONCEPTO DE INTERFAZ
DEFINICIÓN DE INTERFACES
IMPLEMENTACIÓN DE INTERFACES
ACCESO A MIEMBROS DE UNA INTERFAZ
TEMA 16: INSTRUCCIONES
CONCEPTO DE INSTRUCCIÓN
INSTRUCCIONES BÁSICAS
DEFINICIONES DE VARIABLES LOCALES
ASIGNACIONES
LLAMADAS A MÉTODOS
INSTRUCCIÓN NULA
INSTRUCCIONES CONDICIONALES
INSTRUCCIÓN IF
INSTRUCCIÓN SWITCH
INSTRUCCIONES ITERATIVAS
INSTRUCCIÓN WHILE
INSTRUCCIÓN DO...WHILE
INSTRUCCIÓN FOR
INSTRUCCIÓN FOREACH
INSTRUCCIONES DE EXCEPCIONES
CONCEPTO DE EXCEPCIÓN.
LA CLASE SYSTEM.EXCEPTION
EXCEPCIONES PREDEFINIDAS COMUNES
LANZAMIENTO DE EXCEPCIONES. INSTRUCCIÓN THROW
CAPTURA DE EXCEPCIONES. INSTRUCCIÓN TRY
INSTRUCCIONES DE SALTO
INSTRUCCIÓN BREAK
INSTRUCCIÓN CONTINUE
INSTRUCCIÓN RETURN
José Antonio González Seco
154
154
154
157
157
157
158
160
163
163
163
165
166
167
167
167
169
172
175
175
175
175
176
176
176
176
176
177
179
179
180
180
181
185
185
186
187
188
188
193
193
194
194
Página 4
El lenguaje de programación C#
Índice
INSTRUCCIÓN GOTO
INSTRUCCIÓN THROW
OTRAS INSTRUCCIONES
INSTRUCCIONES CHECKED Y UNCHECKED
INSTRUCCIÓN LOCK
INSTRUCCIÓN USING
INSTRUCCIÓN FIXED
TEMA 17: ATRIBUTOS
CONCEPTO DE ATRIBUTO
UTILIZACIÓN DE ATRIBUTOS
DEFINICIÓN DE NUEVOS ATRIBUTOS
ESPECIFICACIÓN DEL NOMBRE DEL ATRIBUTO
ESPECIFICACIÓN DEL USO DE UN ATRIBUTO
ESPECIFICACIÓN DE PARÁMETROS VÁLIDOS
LECTURA DE ATRIBUTOS EN TIEMPO DE EJECUCIÓN
ATRIBUTOS DE COMPILACIÓN
ATRIBUTO SYSTEM.ATTRIBUTEUSAGE
ATRIBUTO SYSTEM.OBSOLETE
ATRIBUTO SYSTEM.DIAGNOSTICS.CONDITIONAL
TEMA 18: CÓDIGO INSEGURO
CONCEPTO DE CÓDIGO INSEGURO
COMPILACIÓN DE CÓDIGOS INSEGUROS
MARCACIÓN DE CÓDIGOS INSEGUROS
DEFINICIÓN DE PUNTEROS
MANIPULACIÓN DE PUNTEROS
OBTENCIÓN DE DIRECCIÓN DE MEMORIA. OPERADOR &
ACCESO A CONTENIDO DE PUNTERO. OPERADOR *
ACCESO A MIEMBRO DE CONTENIDO DE PUNTERO. OPERADOR ->
CONVERSIONES DE PUNTEROS
ARITMÉTICA DE PUNTEROS
OPERADORES RELACIONADOS CON CÓDIGO INSEGURO
OPERADOR SIZEOF. OBTENCIÓN DE TAMAÑO DE TIPO
OPERADOR STACKALLOC. CREACIÓN DE TABLAS EN PILA.
FIJACIÓN DE VARIABLES APUNTADAS
TEMA 19: DOCUMENTACIÓN XML
CONCEPTO Y UTILIDAD DE LA DOCUMENTACIÓN XML
INTRODUCCIÓN A XML
COMENTARIOS DE DOCUMENTACIÓN XML
SINTAXIS GENERAL
EL ATRIBUTO CREF
ETIQUETAS RECOMENDADAS PARA DOCUMENTACIÓN XML
ETIQUETAS DE USO GENÉRICO
ETIQUETAS RELATIVAS A MÉTODOS
ETIQUETAS RELATIVAS A PROPIEDADES
ETIQUETAS RELATIVAS A EXCEPCIONES
ETIQUETAS RELATIVAS A FORMATO
194
196
196
196
197
198
200
201
201
201
203
203
203
205
205
209
209
209
209
211
211
211
212
213
214
214
215
215
216
217
218
218
219
220
223
223
223
225
225
225
227
228
228
229
230
230
José Antonio González Seco
Página 5
El lenguaje de programación C#
Índice
GENERACIÓN DE DOCUMENTACIÓN XML
GENERACIÓN A TRAVÉS DEL COMPILADOR EN LÍNEA DE COMANDOS
GENERACIÓN A TRAVÉS DE VISUAL STUDIO.NET
ESTRUCTURA DE LA DOCUMENTACIÓN XML
SEPARACIÓN ENTRE DOCUMENTACIÓN XML Y CÓDIGO FUENTE
TEMA 20: EL COMPILADOR DE C# DE MICROSOFT
INTRODUCCIÓN
SINTAXIS GENERAL DE USO DEL COMPILADOR
OPCIONES DE COMPILACIÓN
OPCIONES BÁSICAS
MANIPULACIÓN DE RECURSOS
CONFIGURACIÓN DE MENSAJES DE AVISOS Y ERRORES
FICHEROS DE RESPUESTA
OPCIONES DE DEPURACIÓN
COMPILACIÓN INCREMENTAL
OPCIONES RELATIVAS AL LENGUAJE
OTRAS OPCIONES
ACCESO AL COMPILADOR DESDE VISUAL STUDIO.NET
DOCUMENTACIÓN DE REFERENCIA
BIBLIOGRAFÍA
INFORMACIÓN EN INTERNET SOBRE C#
PORTALES
GRUPOS DE NOTICIAS Y LISTAS DE CORREO
232
232
234
235
237
239
239
239
241
241
244
245
247
249
250
251
252
254
257
257
257
258
258
José Antonio González Seco
Página 6
El lenguaje de programación C#
Introducción a la obra
Introducción a la obra
Requisitos previos recomendados
En principio, para entender con facilidad esta obra es recomendable estar familiarizado
con los conceptos básicos de programación orientada a objetos, en particular con los
lenguajes de programación 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 algún elemento del lenguaje se definen y explican los conceptos
básicos que permiten entenderlo. Aún así, sigue siendo recomendable disponer de los
requisitos antes mencionados para poder moverse con mayor soltura por el libro y
aprovecharlo al máximo.
Estructura de la obra
Básicamente el eje central de la obra es el lenguaje de programación C#, del que no sólo
se describe su sintaxis sino que también se intenta explicar cuáles son las razones que
justifican las decisiones tomadas en su diseño y cuáles son los errores más difíciles 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: Introducción 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 características y conc
Comentarios de: El lenguaje de programación C# (1)