Pular para o conteúdo principal

Questão de Programação — .Net — Avança SP 2024

Programação.Net
Código
qg085763
Banca
Avança SP
Órgão
Prefeitura de Caçapava - SP
Ano
2024
Nível
Médio
Cargo
Técnico em Informática
Considere um ambiente de desenvolvimento em Visual Basic .NET. Quando um desenvolvedor utiliza a instrução 'Using', ele faz com que:
  1. AUma variável seja declarada fora do escopo do bloco de código.
  2. BOs recursos sejam alocados no início e liberados automaticamente ao final do bloco.
  3. CA conexão com o banco de dados permaneça aberta por tempo indeterminado.
  4. DO compilador otimize automaticamente o código para execução em sistemas operacionais diferentes.
  5. EA aplicação se torne independente da plataforma .NET Framework.
Revelar gabarito e comentário

GabaritoB — Os recursos sejam alocados no início e liberados automaticamente ao final do bloco.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Instrução Using no Visual Basic .NET

Gabarito: letra B. A instrução Using no Visual Basic .NET (e no C#) é uma construção de gerenciamento de recursos que garante que os recursos alocados sejam liberados automaticamente ao final do bloco, mesmo que uma exceção seja lançada. Ela é a forma idiomática de implementar o padrão Dispose para objetos que implementam a interface IDisposable, como conexões de banco de dados, arquivos e streams.

O Using é uma das construções mais importantes para o programador .NET, pois trata de um problema clássico: o vazamento de recursos não gerenciados. Quando você abre uma conexão com um banco de dados ou um arquivo, está utilizando recursos do sistema operacional que precisam ser devolvidos. Se o programador esquecer de fechá-los, o sistema pode ficar sem recursos, causando lentidão ou até travamentos. O Using resolve isso de forma elegante: ele garante que o método Dispose() seja chamado ao final do bloco, liberando os recursos de forma determinística.

A sintaxe básica em Visual Basic .NET é:

Using conexao As New SqlConnection("string de conexão")
    ' Código que utiliza a conexão
End Using

O compilador transforma esse bloco em um Try...Finally, onde o Finally chama o Dispose(). Isso significa que, independentemente de o código dentro do bloco ser executado com sucesso ou lançar uma exceção, o recurso será liberado. Essa é a grande vantagem sobre o uso manual de Try...Finally, pois o Using torna o código mais limpo e menos propenso a erros.

É importante distinguir o Using de outras construções. O Using não tem relação com a diretiva Imports (que importa namespaces) nem com a declaração de variáveis fora do escopo. Ele também não tem nada a ver com otimização de código para diferentes sistemas operacionais ou com a independência da plataforma .NET. O Using é exclusivamente sobre o ciclo de vida de recursos: alocar no início e liberar automaticamente ao final.

A pegadinha desta questão é que a banca mistura conceitos de gerenciamento de recursos com conceitos de plataforma e compilação. O candidato que não conhece bem o Using pode ser tentado pelas alternativas que falam de otimização ou independência de plataforma, mas a essência do Using é o gerenciamento automático de recursos. Guarde isso: Using = alocar e liberar automaticamente.

  1. 1Aloca recurso no início
  2. 2Executa o bloco
  3. 3Chama Dispose() no final
  4. 4Libera recurso mesmo com exceção
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que uma variável é declarada fora do escopo do bloco. Isso é o oposto do que o Using faz. A variável declarada no Using tem escopo limitado ao bloco, ou seja, ela só existe dentro do Using e é destruída ao final. Declarar uma variável fora do escopo seria o comportamento de uma variável global ou de uma variável declarada em um escopo mais amplo, o que não é o caso.

Alternativa B — ✅ Correta ⟵ GABARITO

Esta é a definição exata do Using. Ele aloca os recursos no início do bloco (quando a variável é inicializada) e os libera automaticamente ao final, chamando o método Dispose(). Isso garante que recursos como conexões de banco de dados sejam liberados corretamente, mesmo em caso de exceção.

Alternativa C — ❌ Incorreta

Afirma que a conexão com o banco de dados permanece aberta por tempo indeterminado. Isso é exatamente o que o Using evita. O Using garante que a conexão seja fechada ao final do bloco, não importa o que aconteça. Uma conexão que permanece aberta por tempo indeterminado seria o resultado de não usar o Using ou de um gerenciamento manual incorreto.

Alternativa D — ❌ Incorreta

Afirma que o compilador otimiza automaticamente o código para execução em sistemas operacionais diferentes. Isso não tem relação com o Using. A otimização para diferentes sistemas operacionais é uma característica da plataforma .NET (que é multiplataforma), mas não é algo que o Using faça. O Using é uma construção de gerenciamento de recursos, não de otimização de plataforma.

Alternativa E — ❌ Incorreta

Afirma que a aplicação se torna independente da plataforma .NET Framework. Isso também não tem relação com o Using. A independência de plataforma é uma característica do .NET (Core) em si, que roda em Windows, Linux e macOS. O Using não tem nenhum efeito sobre a portabilidade da aplicação.

Gabarito: letra B

Link permanente: /questoes/qg085763