Avatar ·

Funcionalidades ocultas de C# que no mencionan en los libros de texto

¡Hola a todos! Llevo escribiendo en C# aproximadamente un año, he leído varios libros (Schildt, Troelsen), pero siento que el lenguaje es mucho más profundo de lo que parece. En StackOverflow me topé con el hilo "Hidden Features of C#" con 760k visitas, pero todo está en inglés. Me interesan precisamente aquellas características que no son obvias para un principiante. Por ejemplo, hace poco aprendí sobre `nameof()` — parece una tontería, pero ayuda en el refactoring. O sobre `??` (null-coalescing) — antes escribía largos ifs. Pero hay cosas que no entiendo en absoluto. Por ejemplo, ¿qué es `yield return`? Lo he visto en ejemplos, pero no logro comprender para qué sirve si simplemente se puede devolver un List. También he oído sobre "extension methods" — al parecer, añades métodos a tipos existentes, pero ¿cómo funciona internamente? Y la pregunta más grande: ¿es verdad que en C# existe la posibilidad de escribir