Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Top 50 Perguntas e Respostas de Entrevista em C# (Edição 2021) – Iniciantes e Desenvolvedores Experientes

C# é uma linguagem versátil, orientada a objetos, que roda no framework .NET. Ela alimenta aplicações web ASP.NET, software desktop e até jogos via Unity. Se você busca uma carreira em C#, dominar estas perguntas de entrevista ajudará a demonstrar profundidade e amplitude de conhecimento para gerentes de contratação.

Abaixo está uma lista curada das perguntas de entrevista em C# mais frequentes, variando de fundamentos para iniciantes a tópicos avançados para desenvolvedores experientes. Cada pergunta é seguida por uma resposta concisa e autoritativa que reflete as melhores práticas da indústria.

Download Gratuito em PDF: Perguntas de Entrevista em C#

Perguntas de Entrevista em C# para Iniciantes e 2/3/5/10 Anos de Experiência

Estas perguntas cobrem conceitos básicos, sintaxe e armadilhas comuns que entrevistadores esperam que candidatos dominem.

1. O que é C#?

C# é uma linguagem tipada estaticamente, type-safe, orientada a objetos, compilada para Microsoft Intermediate Language (MSIL) pelo runtime .NET.

2. Explique os tipos de comentários em C# com exemplos

• Linha única: // Este é um comentário de linha única
• Múltiplas linhas: /* Este é um comentário de múltiplas linhas Pode abranger várias linhas */
• Documentação XML: /// <summary>Define mensagem de erro</summary>

3. Múltiplos blocos catch podem ser executados?

Não. Uma vez que um bloco catch correspondente executa, o controle passa para o bloco finally (se presente) e então para o código seguinte à estrutura try-catch.

4. Qual a diferença entre public, static e void?

public — Acessível de qualquer código que referencie o tipo.
static — Pertence ao tipo em si, não a uma instância.
void — Indica que um método não retorna valor.

5. O que é um objeto?

Um objeto é uma instância de uma classe, criada com a palavra-chave new. Ele fornece acesso aos membros da classe (métodos, propriedades, campos).

6. Defina construtores.

Um construtor é um método especial que compartilha seu nome com a classe. Ele roda automaticamente quando uma instância é criada, inicializando campos e realizando configuração.

7. O que são arrays irregulares (jagged arrays)?

Arrays irregulares são arrays de arrays. Cada elemento pode referenciar um array de comprimento diferente, permitindo estruturas de dados irregulares.

8. Qual a diferença entre parâmetros ref e out?

ref requer que a variável seja inicializada antes da chamada. out não; o chamado deve atribuir um valor antes de retornar.

9. Qual o uso da declaração using em C#?

O bloco using garante que um recurso IDisposable seja liberado automaticamente quando o bloco sai, mesmo se uma exceção ocorrer.

10. O que é serialização?

Serialização converte um objeto em um stream de bytes para armazenamento ou transmissão. Desserialização inverte o processo, recriando o objeto. Tipos devem ser marcados com [Serializable] ou implementar ISerializable.

11. A palavra-chave this pode ser usada dentro de um método estático?

Não. this refere-se à instância atual, que métodos estáticos não têm.

12. Qual a diferença entre constantes e campos read-only?

Constantes são valores de tempo de compilação que não podem mudar. Campos read-only são atribuídos uma vez em tempo de execução (inline ou em construtor) e não podem ser modificados depois.

Perguntas Avançadas de Entrevista em C# para 3/5/10 Anos de Experiência

13. O que é uma interface? Forneça um exemplo.

Uma interface declara um contrato de métodos e propriedades sem implementação. Exemplo:

public interface IGreeter { void SetName(string name); string Greet(); } public class FriendlyGreeter : IGreeter { private string _name; public void SetName(string name) => _name = name; public string Greet() => $"Hello, {_name}!"; }

14. O que são value types e reference types?

Value types (ex: int, struct) armazenam dados diretamente na stack. Reference types (ex: class, string) mantêm uma referência ao objeto no heap.

15. O que são Custom Controls e User Controls?

Custom controls são compilados em DLLs e podem ser arrastados para formulários. User controls (.ascx) são controles compostos construídos a partir de controles existentes, úteis para componentes de UI reutilizáveis.

16. O que são classes sealed em C#?

Uma classe sealed não pode ser herdada. O modificador sealed previne subclassing, garantindo que o comportamento da classe permaneça inalterado.

17. O que é sobrecarga de método?

Sobrecarga de método permite que múltiplos métodos compartilhem um nome mas diferem em listas de parâmetros. O compilador seleciona a sobrecarga apropriada baseada nos argumentos.

18. Qual a diferença entre Array e ArrayList?

Um Array tem tamanho fixo e tipos de elementos homogêneos. ArrayList (agora amplamente substituído por List<T>) é dinâmico e armazena objetos.

19. Um método virtual privado pode ser sobrescrito?

Não. Um método privado não é visível para classes derivadas, então não pode ser sobrescrito.

20. Descreva o modificador de acessibilidade protected internal.

Membros marcados protected internal são acessíveis dentro do mesmo assembly ou de classes derivadas em outros assemblies.

21. Quais as diferenças entre System.String e System.Text.StringBuilder?

String é imutável; cada modificação cria nova instância. StringBuilder é mutável, projetado para manipulação eficiente de strings.

22. Diferença entre Array.CopyTo() e Array.Clone()?

Clone() cria cópia rasa do array inteiro. CopyTo() copia elementos para um array de destino existente.

23. Como ordenar um array em ordem decrescente?

Use Array.Sort() seguido de Array.Reverse(), ou forneça um comparer personalizado.

24. Sintaxe C# para capturar uma exceção.

Exemplo:

try { GetAllData(); } catch (Exception ex) { // Tratar erro }

25. Diferença entre uma interface e uma classe abstrata?

Interfaces declaram apenas assinaturas; todos membros são implicitamente public e abstract. Classes abstratas podem fornecer implementações concretas e membros privados.

26. Diferença entre Finalize() e Dispose()?

Dispose libera recursos não gerenciados deterministicamente. Finalize (destrutor) é chamado pelo GC e é não-determinístico.

27. O que são referências circulares?

Dois ou mais objetos referenciam uns aos outros, potencialmente impedindo garbage collection e causando vazamentos de memória.

28. O que são generics em C#?

Generics permitem código type-safe e reutilizável (ex: List<T>), reduzindo casting em tempo de execução e melhorando performance.

29. O que é um object pool no .NET?

Um object pool mantém um conjunto de objetos inicializados prontos para reuso, minimizando alocações custosas e garbage collection.

30. Liste tipos de exceção comuns no .NET.

ArgumentException, ArgumentNullException, ArgumentOutOfRangeException, ArithmeticException, DivideByZeroException, OverflowException, IndexOutOfRangeException, InvalidCastException, InvalidOperationException, IOException, NullReferenceException, OutOfMemoryException, StackOverflowException, etc.

31. O que são exceções personalizadas?

Exceções personalizadas são tipos definidos pelo usuário derivados de Exception, adaptados a cenários de erro específicos.

32. O que são delegates?

Delegates são ponteiros de função type-safe que permitem callbacks e manipulação de eventos.

33. Como herdar uma classe em C#?

Use a sintaxe de dois pontos:

public class Derived : Base { }

34. Qual a classe base da qual todas as classes .NET derivam?

System.Object.

35. Diferença entre sobrescrita e sobrecarga de método?

Sobrescrita muda a implementação de um método virtual em classe derivada. Sobrecarga cria múltiplos métodos com mesmo nome mas assinaturas diferentes.

36. Quais as diferentes formas de um método ser sobrecarregado?

Variando tipo, ordem ou contagem de parâmetros.

37. Por que não se pode especificar acessibilidade para métodos dentro de uma interface?

Membros de interface são implicitamente public; especificar acessibilidade seria redundante.

38. Como permitir que uma classe seja herdada mas impedir que um método seja sobrescrito?

Declare o método como sealed dentro de uma classe não-sealed.

39. O que acontece se interfaces herdadas tiverem nomes de métodos conflitantes?

Implemente o método uma vez na classe derivada, garantindo que satisfaça todos os contratos de interface.

40. Diferença entre struct e class?

Structs são value types armazenados na stack, não podem herdar de outras structs, e são imutáveis por convenção. Classes são reference types armazenados no heap.

41. Como usar tipos nullable no .NET?

Adicione ? a um value type:

int? id = null; if (id.HasValue) { /* use id.Value */ }

42. Como criar um array com valores não-padrão?

Use Enumerable.Repeat ou inicializadores de coleção.

43. Diferença entre operadores is e as?

is verifica compatibilidade de tipo e retorna boolean. as faz cast e retorna null se o cast falhar.

44. O que é um multicast delegate?

Um delegate que referencia múltiplos métodos; invocá-lo chama todos os métodos anexados em ordem.

45. O que são indexers em C#?

Indexers permitem que objetos sejam indexados como arrays:

public int this[int index] { get { … } set { … } }

46. Diferença entre throw e throw ex?

throw preserva o stack trace original; throw ex o reseta, dificultando debugging.

47. O que são atributos C# e sua significância?

Atributos adicionam metadados a tipos e membros; podem ser consultados via reflection em tempo de execução.

48. Como implementar o padrão de design singleton?

Exemplo:

public sealed class Singleton { private static readonly Singleton _instance = new Singleton(); public static Singleton Instance => _instance; private Singleton() { } }

49. Diferença entre DirectCast e CType?

DirectCast requer que o tipo em tempo de execução corresponda exatamente ao tipo alvo. CType realiza conversão definida pelo tipo alvo, potencialmente invocando operadores de conversão.

50. C# é código gerenciado ou não gerenciado?

C# é código gerenciado; o CLR o compila para MSIL e gerencia memória.

51. O que é uma aplicação console?

Uma aplicação console roda em uma janela de prompt de comando e é frequentemente o primeiro passo para iniciantes em .NET.

52. Exemplo de remoção de elemento de uma Queue

Use Dequeue() para remover o elemento da frente:

Queue queue = new Queue(); queue.Enqueue(1); queue.Enqueue(2); queue.Enqueue(3); int removed = queue.Dequeue(); // removed = 1

Linguagem C

  1. Métricas-Chave de Nuvem que Impulsionam Experiência do Usuário Final e Desempenho
  2. Guia de Entrevista Cloud 2024: Perguntas e Respostas de Especialistas
  3. Os 5 Principais Desafios do 5G: Navegando Espectro, Custo, Cobertura, Dispositivos e Segurança
  4. Top 10 IDEs C# para Windows, macOS e Linux – Análise 2021
  5. Financiamento da Cadeia de Suprimentos 2019: Tendências, Desafios e Perguntas-Chave
  6. Robotics & Automation News anuncia cerimônia de premiação 2021 — Evento virtual previsto para final de 2021
  7. MEO Classe 4 Elétrica Oral: Perguntas & Respostas Completas e Orientação Prática
  8. 5G e Borda: Desafios Emergentes de Cibersegurança Enfrentando 2021
  9. Manufatura Lights-Out para Oficinas CNC: FAQs e Guia de Implementação
  10. Top 5 Artigos de Ar Comprimido e Gás de 2021: Inovações-Chave e Padrões da Indústria