Coisas Aleatórias Que Aprendi: C#

Eu trabalho com C# há mais de dez anos. Já fiz certificação, trabalhei em provavelmente mais de 40 projetos, e já li e escrevi bastante código. Ainda assim, vez ou outra me deparo com curiosidades/features da linguagem que ou eu desconhecia ou esqueci como funcionavam, por serem mais “raras” na selva mesmo. Esse post reúne algumas dessas redescobertas, recentes ou não, pra ver se dessa vez eu não esqueço :)

    public List<Attachment> Attachments { get; } = new List<Attachment>();
    // ...
    var message = new SlackMessage()
    {
        Attachments = { attachment }
    };

no caso acima, Attachments é uma propriedade readonly (veja que o setter não foi definido). A sintaxe de inicialização não falha pois é traduzida em uma chamada ao método Add. Veja que isso significa que sucessivas inicializações com esta mesma sintaxe não “limpam” a coleção. [ref]