Start Debugging

csharp

344 posts · Página3de35

Como descartar teclas em buffer antes de Console.ReadKey em um loop de jogo de console em C#

Esvazie o buffer de entrada do console com while (Console.KeyAvailable) Console.ReadKey(true) antes de aguardar uma nova tecla, e esvazie-o a cada frame em um loop de jogo para que a repetição de teclas não se acumule. Como o buffer funciona no Windows e no Unix no .NET 10, por que teclas mantidas pressionadas causam atraso, a armadilha do eco no Unix e FlushConsoleInputBuffer.

Como casar parênteses aninhados e tags balanceadas com balancing groups no Regex do .NET

Balancing groups (?<name>) e (?<-name>) transformam um grupo de captura do Regex do .NET em uma pilha, então um único padrão consegue casar parênteses ou tags <div> aninhados em qualquer profundidade. O padrão completo, como a pilha funciona, a captura do conteúdo interno com (?<inner-open>) e as armadilhas verificadas no .NET 11 RC1: a checagem de pilha vazia, backtracking catastrófico, NonBacktracking e tipos de colchetes misturados.

O que é o layout transparente de struct, e por que um struct wrapper de campo único muda a convenção de chamada no .NET?

Um struct transparente é aquele que a ABI trata exatamente como seu único campo. O .NET 11 não oferece essa garantia: um struct que encapsula um double é passado em RCX no Windows x64, mas em XMM0 no Linux e no macOS. Veja o disassembly do JIT do .NET 11 em três ABIs, os bugs de P/Invoke que isso causa e como escrever tipos wrapper seguros em qualquer fronteira.

Como adicionar a chave pública completa de um assembly com strong name ao InternalsVisibleTo em um projeto no estilo SDK

Um assembly assinado precisa nomear seu amigo pela chave pública completa de 320 caracteres, não pelo token, ou o build falha com CS1726 ou CS0281. Obtenha a chave com sn -p e sn -tp, ou com um script .NET multiplataforma, e coloque-a no metadado Key de um item InternalsVisibleTo no .csproj. Cobre o fallback da propriedade PublicKey, a chave DynamicProxyGenAssembly2 do Moq e a armadilha das quebras de linha.
Anterior Próximo