Executando verificação de segurança...
1

Não gosto muito do termo Expressões de Membros, mas enfim não é fácil traduzir o que ele é. Ele tem zero ligação com delegates, ele é um método absolutamente comum, só muda a sintaxe quando ele é muito simples. Claro que todo método pode ser usado em um delegate, mas ele não é um na forma como eles são definidos na linguagem.

Idem para funções locais, zero relação com delegates.

As tais "lambdas estáticas também não são muito delegates, e esse é ate o propósito do uso do modificador. Aqui é um pouco mais complicado porque olhando por cima ele seria um delegate, mas internamente ele não é. Na verdade alguns casos, onde a captura não acontece, já tem uma otimização que transforma aquele método em estático e melhora a performance. O modificador static apenas garante que isso acontecerá, porque impedirá uma captura.

Uma IA não consegue entender essas nuances e detalhes. É verdade que alguns seres humanos também, e embora a IA tenha mais chance de "lembrar" dessa informação, ela não costuma ter essa capacidade e vai custar muito caro, e é muito fácil ela não se importar com isso, até porque o grosso no material não fala disso ou fala de forma distante demais para ela associar. O humano só fará essa associação se ele viu pelo menos uma vez isso e/ou tem um entendimento amplo da computação e se questiona: "será que não dá para otimizar isso já que eu sei que um delegate é caro demais e neste caso eu aprendi que que não faz o que gera esse custo"; e aí ele vai estudar mais e achar a informação correta, talvez até com experimentos e raciocínios mais complexos, a IA não faz isso. O humano pode saber quem ele pode confiar mais porque é o criador da especificação ou compilador, a IA não sabe isso ou não consegue associar na hora que precisa, ela não consegue incluir isso na estatística dela a não ser que o humano mande fazer, e mesmo assim tem chance maior dela falhar porque já começa envolver assuntos diferentes, onde ela tende a se perder e talvez dar um resultado ainda pior. O humano também pode errar, de forma diferente. Mas incrível, um dos grandes defeitos do humano é ser teimoso, a IA veio para entregar sem esse defeito, #SQN.

ChatGPT, é você?

Estou virando o paladino "anti" IA (mal usada).

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).

Carregando publicação patrocinada...
2

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.

1

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.

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.

2

Excelente, era para saber se estava no caminho certo, eu cheguei a imprimir algumas dessas atas, para não cansar tanto os olhos, porque era grande o documento. Obrigado pelo direcionamento, vou continuar lendo e vou fazer algumas impressões do código para ligar alguns pontos.

1

Poxa, da bastante trabalho escrever os artigos maniero, eu tentei trazer features relacionadas com o tema. Concordo que funções locais não estão diretamente relacionadas com delegates e fugiu um pouco do título do artigo. Na versão inicial do artigo, eu não ia falar só de delegates mas no fim resolvi cortar alguns tópicos porque ficou muito extenso e o título acabou não refletindo exatamente o conteúdo.
Espero que pelo menos o conteúdo ajude àqueles que ainda estão iniciando e tem dificuldades pra entender este assunto assim como eu tive no meu início de carreira.

Abraço