Professional Documents
Culture Documents
Parte 1
Conceptos preliminares
Mtodos annimos......................................................................
3
7
8
9
Genricos........................................................................................... 13
2.1. Cada oveja con su pareja.......................................................................................
2.2. La expresin default(T)...........................................................................................
2.3. La implementacin de la genericidad en .NET................................................
2.4. Colecciones genricas..............................................................................................
2.5. Ms de un parmetro de tipo...............................................................................
2.6. Restricciones...............................................................................................................
2.7. Mtodos genricos....................................................................................................
2.8. Delegados genricos.................................................................................................
2.9. Interfaces genricas..................................................................................................
2.10. La interfaz IEnumerable<T>..................................................................................
2.11. La semntica de foreach para IEnumerable<T>..............................................
2.12. Ejemplo de implementacin de IEnumerable<T>...........................................
2.13. La interfaz ICollection<T>.....................................................................................
13
21
21
22
24
26
27
29
32
32
34
35
37
Iteradores......................................................................................... 39
3.1. Bloques de iteracin................................................................................................ 39
3.2. La secuencia del 1 al 1000, revisited.................................................................... 40
ix
Contenido
40
41
42
43
44
46
Parte 2
Novedades en C# 3.0
Novedades bsicas en C# 3.0............................................... 57
5.1. Declaracin implcita del tipo de variables locales........................................
5.1.1. Sobre la conveniencia de utilizar var..................................................
5.2. Propiedades implementadas automticamente.................................................
5.3. Inicializadores de objetos y colecciones............................................................
5.3.1. Inicializadores de objetos........................................................................
5.3.2. Inicializadores de colecciones................................................................
5.4. Tipos annimos inmutables....................................................................................
5.5. Arrays de tipo definido implcitamente..............................................................
5.6. Mtodos parciales.....................................................................................................
5.6.1. Utilidad de los mtodos parciales........................................................
57
59
59
60
60
62
63
65
65
68
Mtodos extensores................................................................... 69
6.1. Introduccin................................................................................................................ 69
6.2. La sintaxis.................................................................................................................... 71
6.3. Ms ejemplos.............................................................................................................. 72
6.4. El acceso a los mtodos extensores................................................................... 75
6.5. Recomendaciones de utilizacin........................................................................... 76
6.6. La razn de ser de los mtodos extensores................................................... 77
Expresiones lambda..................................................................... 79
7.1. Introduccin................................................................................................................
7.2. Las expresiones lambda como objetos de cdigo..........................................
7.3. La sintaxis....................................................................................................................
7.4. El tipo delegado Func..............................................................................................
7.5. Ms ejemplos..............................................................................................................
79
80
81
82
82
Contenido xi
83
84
85
86
rboles de expresiones............................................................. 87
8.1. De expresiones lambda a rboles de expresiones.........................................
8.1.1. Los rboles como representacin de expresiones.........................
8.2. La jerarqua de clases de expresiones................................................................
8.3. Ms ejemplos..............................................................................................................
8.4. Manipulacin programtica de rboles...............................................................
8.5. Clculo de derivadas................................................................................................
8.6. Y ahora, los deberes................................................................................................
87
88
91
96
98
107
112
Parte 3
Consultas integradas en C#
Fundamentos de LINQ................................................................. 115
9.1. Presentacin de linq.............................................................................................
9.2. Las expresiones de consulta..................................................................................
9.3. Reescritura de las expresiones de consulta.....................................................
9.4. La (no) semntica de los operadores de consulta.........................................
9.5. Resolucin de llamadas a operadores................................................................
9.6. Los operadores de consulta estndar................................................................
9.7. El patrn de expresiones de consulta................................................................
9.8. La utilidad objectdumper......................................................................................
9.9. Ejemplos bsicos........................................................................................................
9.10. De nuevo la ejecucin diferida.............................................................................
9.11. Sintaxis de las expresiones de consulta.............................................................
9.12. Productos cartesianos..............................................................................................
9.12.1. Restriccin de productos y optimizacin de consultas.................
9.13. Encuentros...................................................................................................................
9.13.1. Particularidades sintcticas.....................................................................
9.13.2. Diferencia con el producto cartesiano restringido.........................
9.14. Grupos..........................................................................................................................
9.15. La clusula into..........................................................................................................
9.15.1. Continuaciones...........................................................................................
9.15.2. Encuentros agrupados..............................................................................
9.15.3. Emulando encuentros externos con encuentros agrupados........
9.16. La clusula let.............................................................................................................
9.17. Algunos ejemplos prcticos...................................................................................
9.18. Un nuevo modelo de escritura de bucles?......................................................
115
117
119
121
121
123
124
125
126
128
130
131
133
133
134
135
135
137
137
139
140
142
143
145
xii Contenido
149
153
153
154
155
156
158
160
162
164
166
167
167
168
168
169
169
170
171
171
172
172
172
173
174
175
176
177
177
178
178
178
179
179
179
180
180
180
181
181
182
182
182
183
Contenido xiii
183
184
184
185
185
186
186
186
187
188
189
190
Parte 4
Extensiones de LINQ
LINQ to XML....................................................................................... 235
12.1. Presentacin................................................................................................................
12.2. Expresiones de consulta sobre documentos XML.........................................
12.3. Operadores de consulta especficos de LINQ to XML...............................
12.4. Bsquedas en documentos XML..........................................................................
12.4.1. Bsquedas XPath.......................................................................................
235
241
244
245
246
xiv Contenido
246
247
249
249
251
253
254
256
256
257
258
259
261
263
266
274
274
275
276
276
277
278
279
281
282
284
285
286
286
288