Close Menu
Código Simples .NETCódigo Simples .NET
    Facebook X (Twitter) Instagram
    Trending
    • Mais de 200 livros de programação gratuitos em português
    • System Design: da teoria à prática
    • Pessoas e Processos: o fator humano por trás da arquitetura de sistemas
    • Observabilidade e Operações: dando olhos e mãos ao sistema
    • Performance e Custo: otimizando o que realmente importa
    • Padrões de Arquitetura e Organização: quando o design encontra a realidade
    • Confiabilidade e Consistência: construindo sistemas que não quebram sob pressão
    • Bancos de dados e armazenamento: onde moram os gargalos
    Facebook X (Twitter) Instagram
    Código Simples .NETCódigo Simples .NET
    Código Simples .NETCódigo Simples .NET
    Home»Asp.net»C#»Utilizando Unsafe com ponteiros – c#

    Utilizando Unsafe com ponteiros – c#

    Jhonathan SoaresBy Jhonathan Soares12 de fevereiro de 20161 Min Read C#
    Share
    Facebook Twitter LinkedIn WhatsApp Copy Link

    A palavra reservada unsafe denota um contexto sem segurança, o que é necessário para qualquer operação envolvendo ponteiros. Para obter mais informações, consulte Unsafe Code and Pointers (C# Programming Guide).

    Você pode usar o modificador unsafe na declaração de um tipo ou membro. A extensão textual inteira do tipo ou membro, portanto, é considerada um contexto sem segurança. Por exemplo, o seguinte é um método declarado com o modificador unsafe:

    unsafe static void FastCopy(byte[] src, byte[] dst, int count)
    {
        // Unsafe context: can use pointers here.
    }
    

    O escopo do contexto não seguro amplia-se da lista de parâmetros até o final do método, para que os ponteiros também possam ser utilizados na lista de parâmetros.

    unsafe static void FastCopy ( byte* ps, byte* pd, int count ) {...}
    

    Você também pode usar um bloco não seguro para permitir o uso de um código não seguro dentro desse bloco. Por exemplo:

    unsafe
    {
        // Unsafe context: can use pointers here.
    }

    Para compilar o código não seguro, você deve especificar a opção de compilador /unsafe. Código não seguro não é verificado pelo common language runtime.

        // compile with: /unsafe
    
        class UnsafeTest
        {
           // Unsafe method: takes pointer to int:
           unsafe static void SquarePtrParam(int* p)
           {
              *p *= *p;
           }
    
           unsafe static void Main()
           {
              int i = 5;
              // Unsafe method: uses address-of operator (&):
              SquarePtrParam(&i);
              Console.WriteLine(i);
           }
        }
        // Output: 25

     

    Viu como a linguagem C# é cheia de segredos interessantes que acabam sendo úteis em alguns casos?

    Artigo de referência: MSDN

    Um bom final de semana a todos!

    Não deixem de passar no nosso Faceboook.

    c#
    Share. Facebook Twitter LinkedIn Telegram WhatsApp Copy Link
    Jhonathan Soares
    • Website
    • Facebook
    • X (Twitter)
    • LinkedIn

    Criador do blog Código Simples e com mais 15 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist.

    Posts Relacionados

    O que é a Ecma e qual é sua relação com C#?

    C# Post do Leitor 29 de julho de 20247 Mins Read

    UUID vs ULID: comparação e exemplos em C#

    C# 19 de junho de 20245 Mins Read

    Entendendo o ObjectId no MongoDB

    C# NoSql 25 de maio de 20246 Mins Read
    Newsletter

    Digite seu endereço de e-mail para receber notificações de novas publicações por e-mail.

    Junte-se a 25mil outros assinantes
    Posts recentes
    • Mais de 200 livros de programação gratuitos em português
    • System Design: da teoria à prática
    • Pessoas e Processos: o fator humano por trás da arquitetura de sistemas
    • Observabilidade e Operações: dando olhos e mãos ao sistema
    • Performance e Custo: otimizando o que realmente importa
    Categorias
    • Arquitetura (27)
      • Microsserviços (2)
      • Testes (2)
    • Asp.net (120)
      • C# (89)
      • Mvc (13)
    • Banco de dados (92)
      • NoSql (59)
      • Sql (38)
    • Boas práticas (33)
      • Gestão & Produtividade (3)
      • Metodologias Ágeis (6)
    • Cursos (53)
    • Dicas (106)
    • Front-End (92)
    • IA (4)
    • Linux (6)
    • NodeJS (4)
    • Post do Leitor (9)
    • Python (5)
    • Seo (12)
    • Tecnologia (30)
      • ITIL (1)
      • Padrões de Projeto (4)
    • Testes (2)

    VEJA TAMBÉM

    Testes
    28 de fevereiro de 20254 Mins Read

    30 APIs Gratuitas para desenvolvedores

    APIs são ferramentas essenciais para desenvolvedores que querem criar aplicações mais eficientes, conectadas e funcionais sem reinventar a roda. Desde dados abertos, notícias em tempo real e inteligência artificial até esportes e clima, há APIs gratuitas que oferecem vastas possibilidades de integração. Este artigo apresenta 30 APIs gratuitas que podem acelerar o desenvolvimento e abrir novas oportunidades para projetos inovadores.

    1000 livros gratuitos sobre programação!

    Facebook X (Twitter) Instagram LinkedIn

    Type above and press Enter to search. Press Esc to cancel.

    Vá para versão mobile