Ontem à noite ministrei a aula inaugural da nova turma de “C# do jeito certo”, no meu clube de estudos. Não é uma formação para quem está começando. É para quem já escreve C# todos os dias e desconfia que há bem mais acontecendo do que aparece na superfície.
Ao longo de quase três horas, defendi uma ideia simples e incômoda. Usar bem C# não é dominar sintaxe. É combinar design refinado, domínio real da linguagem, leitura atenta das “opiniões” do compilador e compreensão da psicologia do runtime, especialmente do Garbage Collector.
Falamos de níveis. Do C# açucarado, cheio de facilidades para escrever código expressivo. Do C# mais direto, onde o açúcar some e as decisões ficam explícitas. E, por fim, do IL, onde escolhas de design aparecem sem maquiagem. Nem sempre é preciso pensar nesses níveis. Mas quando demandas especiais surgem, repertório deixa de ser luxo.
Em determinado momento, a sala ficou em silêncio quando mostrei algo banal à primeira vista. O foreach faz parte desse C# açucarado. Ele carrega uma visão muito específica e opinativa sobre como iterar. É confortável. É elegante. E nem sempre é neutro. Ali deu para sentir o clique.
Não houve truques, nem promessas milagrosas. Apenas gente com experiência prática falando do que realmente faz diferença quando o código sai do exemplo e encontra a realidade.
Quem ensina aprende duas vezes. Eu aprendi. E sigo convencido de uma coisa. C# recompensa quem decide ir além do que é apenas conveniente.