Actualizado el 30 de Junio del 2018 (Publicado el 14 de Enero del 2017)
12.362 visualizaciones desde el 14 de Enero del 2017
1,7 MB
264 paginas
Creado hace 19a (11/10/2004)
El lenguaje de programación C#
Índice
INTRODUCCIÓN A LA OBRA
REQUISITOS PREVIOS RECOMENDADOS
ESTRUCTURA DE LA OBRA
CONVENIOS DE NOTACIÓN
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
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
José Antonio González Seco
Página 1
El lenguaje de programación C#
Índice
TEMA 5: CLASES
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
José Antonio González Seco
55
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
Página 2
El lenguaje de programación C#
Índice
ORDEN DE INICIALIZACIÓN DE VARIABLES
TEMA 8: MÉTODOS
CONCEPTO DE MÉTODO
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
José Antonio González Seco
107
109
109
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
Página 3
El lenguaje de programación C#
Índice
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
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
ENUMERACIONES DE FLAGS
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
143
143
145
148
149
152
154
154
154
154
157
157
157
158
160
163
163
164
165
166
168
171
171
171
173
176
179
179
179
179
180
180
180
180
180
181
183
183
184
184
José Antonio González Seco
Página 4
El lenguaje de programación C#
Índice
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
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
185
189
189
190
191
192
192
197
197
198
198
198
200
200
200
201
202
204
205
205
205
207
207
207
209
209
213
213
213
213
215
215
215
216
217
218
218
219
219
220
221
222
222
223
224
José Antonio González Seco
Página 5
El lenguaje de programación C#
Índice
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
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
227
227
227
229
229
229
231
232
232
233
234
234
236
236
238
239
241
243
243
243
245
245
248
249
251
253
254
255
256
258
261
261
261
262
262
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
Comentarios de: El lenguaje de programación C# (2)