Considere o padrão típico de um programa em C#. Qual das alternativas a seguir corretamente descreve a sequência de elementos presentes na estrutura básica de um programa em C#?
AMétodo, Namespace, Classe, Variáveis.
BMétodo, Variáveis, Classe, Namespace.
CVariáveis, Método, Classe, Namespace.
DNamespace, Classe, Método, Variáveis.
EClasse, Namespace, Método, Variáveis.
Revelar gabarito e comentário▾
GabaritoD — Namespace, Classe, Método, Variáveis.
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”.
Estrutura básica de um programa em C#
Gabarito: letra D. Em C#, a ordem canônica dos elementos é: Namespace → Classe → Método → Variáveis — o namespace agrupa as classes, a classe contém os métodos e as variáveis são declaradas dentro dos métodos (ou da classe). Essa é a sequência que a alternativa D espelha corretamente.
Um programa em C# é organizado em camadas hierárquicas. No nível mais externo, temos o namespace, que funciona como um contêiner lógico para agrupar tipos relacionados (classes, structs, interfaces). Dentro do namespace, declaramos a classe, que é o bloco fundamental da programação orientada a objetos — ela encapsula dados (campos/variáveis) e comportamentos (métodos). Dentro da classe, definimos os métodos, que são blocos de código executável que realizam operações. Por fim, as variáveis são os espaços de memória que armazenam dados — elas podem ser declaradas como campos da classe ou localmente dentro dos métodos.
A ordem de declaração no código-fonte segue essa hierarquia: primeiro o namespace (que pode conter using no topo), depois a classe, depois os métodos e, dentro deles, as variáveis. Um exemplo típico:
using System; // diretiva using (opcional)
namespace MeuPrograma // 1º: namespace
{
class Program // 2º: classe
{
static void Main(string[] args) // 3º: método
{
string mensagem = "Olá, Mundo!"; // 4º: variável
Console.WriteLine(mensagem);
}
}
}
A pegadinha desta questão é justamente inverter essa hierarquia. O candidato que não tem clareza sobre a estrutura pode confundir a ordem, achando que o método vem antes da classe ou que as variáveis são declaradas antes do namespace. A banca explora exatamente essa confusão entre os níveis de organização do código.
Guarde a hierarquia Namespace → Classe → Método → Variáveis como uma cascata de contenção: cada elemento está contido no anterior. É esse critério de "quem contém quem" que separa a alternativa correta das demais.
1Namespace
2Classe
3Método
4Variáveis
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Inverte completamente a hierarquia, colocando o Método como primeiro elemento. O método é um elemento interno à classe — ele não pode existir fora dela. A ordem correta começa com o namespace, que é o contêiner mais externo.
Alternativa B — ❌ Incorreta
Também começa com Método e ainda coloca Variáveis antes da Classe. As variáveis são declaradas dentro de métodos ou da classe, nunca antes deles na estrutura do programa.
Alternativa C — ❌ Incorreta
Coloca Variáveis como primeiro elemento. As variáveis são o nível mais interno da hierarquia — elas dependem de um método ou classe para existir. Não faz sentido declará-las antes do namespace.
Alternativa D — ✅ Correta ⟵ GABARITO
Apresenta a sequência exata: Namespace → Classe → Método → Variáveis. O namespace agrupa a classe, a classe contém o método, e o método declara as variáveis. É a ordem natural de declaração em um programa C#.
Alternativa E — ❌ Incorreta
Começa com Classe, ignorando o namespace. Embora seja possível escrever código sem namespace explícito (o compilador cria um namespace global), a estrutura típica e recomendada de um programa C# sempre declara o namespace como elemento mais externo.
PEGA ESSA DICA!
Para fixar a ordem, pense na hierarquia de contenção: Namespace contém Classe, que contém Método, que contém Variáveis. Na prova, se a alternativa começar com qualquer elemento que não seja o namespace, ela está errada — a menos que a questão trate de um caso específico sem namespace, o que é raro.