Questão de Programação — C Sharp — FGV 2022
- Código
- fg051454
- Banca
- FGV
- Órgão
- SEAD-AP
- Ano
- 2022
- Nível
- Superior
- Cargo
- Perito Criminal - Ciência da Computação - Analista de Sistema
- A

- B

- C

- D

- E






GabaritoD — [imagem]
Gabarito: letra D. A estrutura correta em C# exige a declaração de um namespace (opcional, mas comum), a definição de uma class e um método static void Main(string[] args) como ponto de entrada, respeitando a hierarquia de chaves {} para encapsular cada bloco de código.
Um programa C# é composto por blocos de construção fundamentais. O namespace organiza os tipos, a class define o comportamento e os dados, e o método Main atua como o ponto de entrada obrigatório para a execução do programa. A sintaxe exige que o método Main seja estático (static), não retorne valor (void) e aceite um array de strings como parâmetro (string[] args), garantindo que o compilador identifique corretamente onde o processamento deve iniciar.
Embora pareça correta, a sintaxe de declaração do namespace em C# tradicionalmente utiliza chaves {} para delimitar seu escopo. A forma apresentada (namespace HelloWorld;) é uma sintaxe de "escopo de arquivo" (file-scoped namespace) introduzida em versões mais recentes, mas a alternativa D apresenta a estrutura clássica e completa de encapsulamento que é o padrão de referência para a sintaxe da linguagem em provas.
O erro reside na assinatura do método Main. O parâmetro (parameters) é inválido; o método Main deve obrigatoriamente receber um array de strings (string[] args) ou não receber parâmetros, mas nunca um identificador genérico como "parameters" sem definição de tipo.
Utiliza a palavra-chave proc para definir o método Main, o que não existe na sintaxe do C#. A definição de métodos em C# é feita diretamente pelo nome do método, precedido pelo tipo de retorno (ou void) e modificadores de acesso/escopo.
Esta alternativa apresenta a estrutura sintática correta e completa: diretiva using, namespace delimitado por chaves, definição de class e o método static void Main(string[] args) corretamente encapsulado, seguindo as regras de hierarquia e tipagem da linguagem.
A declaração class static Main está sintaticamente errada. static é um modificador de método, não de classe, e não pode ser utilizado dessa forma na declaração da classe. A estrutura correta exige que o modificador static preceda o método Main dentro da classe.
Para não errar a estrutura básica, lembre-se da hierarquia: using (fora) → namespace { class { static void Main { ... } } }.
Link permanente: /questoes/fg051454