1
resposta

[Dúvida] Dúvida sobre o uso da palavra reservada 'using'

Boa tarde pessoal!

Me tirem uma dúvida referente ao uso da palavra reservada using por favor. Aqui no meu exemplo, eu estou consumindo uma API de música utilizando httpclient, porém eu não abri chaves para definir o corpo do block using, e mesmo assim o código funcionou normalmente. Conseguem me dizer porque por favor?

using var client = new HttpClient();
var resposta = await
    client.GetStringAsync("https://guilhermeonrails.github.io/api-csharp-songs/songs.jso");

Console.WriteLine(resposta);

E ainda se eu remover a palavra using, funciona normalmente também, o que é bem mais estranho.

1 resposta

Bom dia, Roger! Tudo bem?

A palavra reservada "using" em C# é utilizada para criar um bloco que define um escopo limitado para um objeto descartável. Esse objeto será automaticamente descartado ao final do bloco "using", mesmo que ocorra uma exceção durante a execução do código.

No seu exemplo, você está utilizando o "using" com a classe HttpClient. Essa classe é um exemplo de uma classe descartável, ou seja, ela implementa a interface IDisposable, que permite que o objeto seja descartado corretamente após o uso.

No entanto, é importante ressaltar que o uso do "using" com o HttpClient não é obrigatório. Se você não utilizar o "using", o objeto HttpClient também será descartado corretamente, mas você precisará se certificar de que está chamando o método Dispose() manualmente após o uso.

Portanto, tanto o código com o "using" quanto o código sem o "using" funcionam corretamente. A diferença é que o "using" garante que o objeto será descartado automaticamente, enquanto sem o "using" você precisa fazer isso manualmente.

Espero ter esclarecido sua dúvida! Se tiver mais alguma pergunta, é só me dizer.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software