Me veio um questionamento, como estes métodos dependendo de delgate ou não no custo dele e qual seria a representação intermediaria dele?
Eu pergunto isso, porque venho estudando o Roslyn, e não tem relação com material acadêmico, mas para conseguir separar as coisas porque eu queria entender o aparato pelo qual o C# é concebido.
O senhor tem algum material além do código com as referências destas decisões, eu li um report a algum tempo para entender como as decisões são tomadas, mas a dencidade era grande, e ligar os pontos foi um tanto quanto desafiador.
Existe alguma forma de olhar para este material e enteder a história com decisões e momento atual da infraestrutura de compilador da linguagem.
Desde já, eu agradeço pela contribuição.
De fato é complicado mesmo, tem que ir caçando e juntando tudo, algo que poucos fazem e por isso poucos se destacam, eu não tenho nada organizado.
Delegate de forma geral é bem mais caro, mas tem algumas otimizações, especialamente nas versões mais novas, mas nem sempre é possível usar. Ele é uma classe com as variáveis capturdas e mais de um método a ser chamado.
- https://stackoverflow.com/questions/7150977/how-methods-of-delegate-type-are-generated-internally
- https://stackoverflow.com/questions/68472470/lambda-expression-compiler-code-generation
- https://github.com/dotnet/csharplang/blob/main/spec/delegates.md
Hoje tem atas de todas as reuniões, mas as reuniões antigas não tem, só vonversando com o Anders, Mads, Eric e outros.