Avatar ·

Recursos ocultos do C# que os livros didáticos não mencionam

Olá a todos! Escrevo em C# há cerca de um ano, li vários livros (Schildt, Troelsen), mas sinto que a linguagem é muito mais profunda do que parece. No StackOverflow, encontrei um tópico "Hidden Features of C#" com 760 mil visualizações, mas está tudo em inglês. Estou interessado exatamente naquelas funcionalidades que não são óbvias para um iniciante. Por exemplo, recentemente aprendi sobre `nameof()` — parece pequeno, mas ajuda na refatoração. Ou sobre `??` (null-coalescing) — antes eu escrevia longos ifs. Mas há coisas que eu simplesmente não entendo. Por exemplo, o que é `yield return`? Vi em exemplos, mas não consigo entender para que serve, se posso simplesmente retornar uma List. Também ouvi falar sobre "extension methods" — tipo, você adiciona métodos a tipos existentes, mas como isso funciona internamente? E a maior pergunta: é verdade que em C# é possível escrever código que é executado antes do Main()? Ou é um mito? Compartilhem, por favor, as funcionalidades ocultas mais úteis do C# que realmente simplificam a vida. Estou interessado tanto em açúcares sintáticos (como `=>` para