Perguntas para entrevista de C# e .NET

Estas perguntas de entrevista de C# servem para quem vai participar de um processo seletivo com a linguagem e quer saber se domina a base. Se você responder bem à maior parte delas, sua fundação está sólida.

As questões cobrem desde o funcionamento da plataforma .NET até orientação a objetos, generics e programação assíncrona. Por isso, use a lista como um roteiro de estudo, e não como uma prova decorada.

De onde vieram estas perguntas

Há algum tempo, publiquei um vídeo que teve ótima repercussão. Nele, comentei algumas perguntas que eu faria para desenvolvedores júnior, pleno e sênior em um processo seletivo de .NET.

Sugiro que você assista ao vídeo antes de seguir, porque ele explica a motivação por trás de cada bloco de perguntas.

Além disso, vale ler as 10 coisas que vão te eliminar de uma vaga .NET pleno ou sênior, que complementa esta lista com o lado comportamental da seleção.

Saiba o básico antes de tudo

Todas as perguntas de entrevista de C# abaixo tratam dos fundamentos da linguagem. Mesmo assim, muitos desenvolvedores acham que o fundamental é simples demais e pulam essa parte.

Não pule o básico. Afinal, os fundamentos permitem construir algo sólido e aprender novas tecnologias com mais rapidez.

Curso completo de C#

O vídeo repercutiu tanto que decidi revisitar os fundamentos do C# e criar um novo curso com toda a base necessária.

Para minha surpresa, o curso ficou com 14 módulos, 140 aulas e mais de 12 horas de conteúdo. E olha que eu sou bem direto ao ponto, como sabe quem já fez algum curso comigo.

Saiba mais sobre o curso

Carreira .NET

Depois dos fundamentos, ainda há muito a consolidar, como OOP, SOLID, Clean Code e Clean Architecture. Nesse caso, você pode recorrer à nossa carreira .NET.

No total, são 6 cursos, incluindo o anterior, com mais de 38 horas focadas em backend. Com isso, você ganha base para criar APIs robustas, escaláveis e prontas para a nuvem.

Saiba mais sobre a carreira

Como usar estas perguntas de entrevista de C#

Existe uma forma simples de descobrir se você já sabe o básico: responda às perguntas abaixo. Se for bem na maioria, parabéns, você tem uma ótima base em C#.

Caso contrário, revise os conceitos com calma. Isso é totalmente normal e faz parte do caminho de qualquer pessoa desenvolvedora.

Uma dica prática é responder em voz alta, como faria diante do recrutador. Assim, você percebe onde a explicação trava antes da entrevista real.

Perguntas de entrevista de C# sobre a plataforma

O primeiro bloco de perguntas de entrevista de C# avalia se você entende o que acontece quando o código roda. Em outras palavras, o recrutador quer ver se você conhece a plataforma, e não só a sintaxe.

Por exemplo, o compilador do C# gera uma linguagem intermediária, e o CLR converte essa linguagem em código nativo com o compilador JIT. A documentação sobre o processo de execução gerenciada detalha cada etapa.

Nº Pergunta
1 O C# é uma linguagem compilada, tipada e gerenciada, o que isso significa?
2 Explique como o C# funciona.
3 O que diferencia uma linguagem compilada de uma interpretada?
4 O que é o CLR?
5 O que é IL?
6 O que é um Framework?
7 O que é o .NET?
8 O que é o .NET Standard?
9 Explique o que é versão semântica.
10 O que significa LTS na versão de um software?
11 O que é um Runtime?
12 O que é um SDK?
13 O que é uma CLI?

Sobre LTS, vale lembrar que as versões pares do .NET recebem suporte por pelo menos três anos. Já as versões ímpares, chamadas STS, recebem dois anos de suporte.

Projetos, comandos e depuração

Em seguida, as perguntas de entrevista de C# entram no dia a dia de quem cria e executa projetos. Aqui, o objetivo é saber se você usa a CLI sem depender só da IDE.

Se você ainda tem dúvidas nesse ponto, o guia sobre criar projetos .NET via console mostra os comandos principais.

Nº Pergunta
14 Cite 3 tipos de projetos que temos no .NET.
15 O que é uma Solution?
16 Qual comando executa uma aplicação .NET?
17 Qual comando compila uma aplicação .NET?
18 Qual comando publica uma aplicação .NET?
19 Qual o nome do método principal de um Console App?
20 O que significa Debug?
21 Como executamos uma aplicação .NET em modo Debug?
22 Qual a finalidade da pasta Properties?
23 Qual a finalidade das pastas Bin e Obj?

Estrutura do programa e tipos

Depois da plataforma, as perguntas de entrevista de C# chegam à estrutura de um programa e ao sistema de tipos. Nesse bloco, detalhes como alias e conversões costumam separar quem estudou de quem só copiou código.

Nº Pergunta
24 Quais partes compõem um programa em C#?
25 O que são Namespaces?
26 Qual a finalidade do using?
27 Qual a diferença entre uma variável e uma constante?
28 Cite 3 palavras reservadas que temos no C#.
29 Quais formas temos de comentar código em C#?
30 O que são tipos primitivos?
31 Qual o tipo base no .NET?
32 Dado um var com um número real, qual seria o tipo do var?
33 Dado um var com um número inteiro, qual seria o tipo do var?
34 Qual a diferença entre char e string?
35 Qual o valor padrão do tipo char?
36 Qual a diferença entre var e object?
37 O que são tipos nulos?
38 O que são alias? Cite 3 exemplos.
39 O que são conversões implícitas e explícitas?
40 Qual a diferença entre Parse e Convert?

Para a última pergunta, o artigo sobre Parse e TryParse no C# ajuda a montar uma resposta completa.

Operadores, fluxo e métodos

Agora o foco passa para a lógica do código. Embora pareçam triviais, essas perguntas mostram se você explica o comportamento com precisão.

Nº Pergunta
41 O que são operadores aritméticos e quais temos no C#?
42 O que são operadores de atribuição e quais temos no C#?
43 O que são operadores de comparação e quais temos no C#?
44 O que são operadores lógicos e quais temos no C#?
45 Cite duas estruturas condicionais que temos no C#.
46 Cite duas estruturas de repetição que temos no C#.
47 Qual a diferença entre while e do/while?
48 Como definimos que um método não retorna valor algum?
49 Podemos ter métodos sem parâmetros no C#?
50 Como tornamos um parâmetro opcional no C#?

Perguntas de entrevista de C# sobre memória

Este bloco de perguntas de entrevista de C# costuma pegar muita gente experiente. Afinal, entender onde cada tipo vive na memória explica boa parte dos problemas de desempenho.

Nº Pergunta
51 O que são heap e stack?
52 O que são tipos de valor e tipos de referência?
53 Onde ficam armazenados os tipos de valor?
54 Onde ficam armazenados os tipos de referência?
55 O que são Structs?
56 O que são enumeradores?
57 O que é um GUID?

Perguntas de entrevista de C# sobre strings

Strings aparecem em praticamente todo sistema, então as perguntas de entrevista de C# sobre elas são frequentes. Além disso, o recrutador quer saber se você conhece a imutabilidade e o custo de concatenar texto.

Nº Pergunta
58 O que é interpolação de string?
59 Qual a finalidade dos métodos CompareTo, Contains e Equals?
60 Qual a finalidade dos métodos StartsWith e EndsWith?
61 Qual a finalidade dos métodos IndexOf e LastIndexOf?
62 Qual a finalidade dos métodos ToLower e ToUpper?
63 Qual a finalidade dos métodos Insert, Remove e Replace?
64 Qual a finalidade da propriedade Length?
65 Qual a finalidade dos métodos Split, Substring e Trim?
66 O que é StringBuilder e quando devemos usá-lo?
67 O que é Regex e quando devemos usá-lo?

Para revisar esse tema, leia sobre String, System.String e StringBuilder no C#.

Datas, horas e números

Datas parecem simples até o sistema atender usuários em fusos diferentes. Por isso, este bloco avalia se você sabe escolher entre DateTime, DateTimeOffset e TimeSpan.

Nº Pergunta
68 O que é o DateTime?
69 Como obtemos a data de hoje no C#?
70 Como convertemos uma data para string?
71 Como comparamos duas datas em C#?
72 Como obtemos o ano, o mês ou o dia no C#?
73 Como obtemos o último dia do mês no C#?
74 Podemos criar datas nulas?
75 O que são nullable types?
76 O que é Timezone?
77 Como obtemos a data sem um Timezone no C#?
78 O que é DateTimeOffset?
79 O que é um TimeSpan?
80 Qual a finalidade de Math.Round, Math.Ceiling e Math.Floor?

Sobre tipos anuláveis, o artigo entendendo nullable types no .NET explica a diferença entre valor ausente e valor padrão.

Perguntas de entrevista de C# sobre coleções

Listas estão em quase toda regra de negócio. Por isso, as perguntas de entrevista de C# sobre coleções verificam se você conhece a API de List e os métodos do LINQ.

Nº Pergunta
81 Qual a diferença entre IEnumerable, IList e ICollection?
82 Qual a diferença entre List e IList?
83 Qual a finalidade dos métodos Add e AddRange em uma lista?
84 Qual a finalidade dos métodos Clear, Contains e CopyTo?
85 Qual a finalidade dos métodos Exists, Find e FindAll?
86 Qual a finalidade dos métodos IndexOf e LastIndexOf em uma lista?
87 Qual a finalidade dos métodos FindIndex, FindLast e FindLastIndex?
88 Qual a finalidade dos métodos Insert e InsertRange?
89 Qual a finalidade dos métodos Remove, RemoveAll, RemoveAt e RemoveRange?
90 Qual a finalidade dos métodos Reverse e Sort?
91 Qual a finalidade dos métodos ToArray, TrueForAll e ForEach?
92 Qual a finalidade do método ConvertAll e como convertemos listas?
93 Qual a finalidade dos métodos Where, First, OrderBy e Select?

Repare que os quatro últimos métodos pertencem ao LINQ, enquanto os demais são da própria classe List. Essa distinção, inclusive, costuma render uma ótima pergunta extra.

Perguntas de entrevista de C# sobre orientação a objetos

Este é o bloco mais clássico das perguntas de entrevista de C#. Aqui, o recrutador quer ouvir conceitos explicados com exemplos, e não definições decoradas.

Nº Pergunta
94 O que são Classes e Objetos?
95 O que é uma instância?
96 O que são Propriedades?
97 O que são métodos construtores?
98 O que é o Garbage Collector?
99 O que é Dispose e qual a sua finalidade?
100 Defina os modificadores public, private e protected.
101 O que são membros estáticos?
102 O que é Herança?
103 O que é Upcast e Downcast?
104 O que são Interfaces?
105 O que são Classes abstratas?
106 Qual a finalidade das Classes seladas?
107 O que é Sobrecarga de métodos?
108 O que é Sobrescrita de métodos?
109 Como podemos comparar dois objetos no C#?
110 O que é Encapsulamento?
111 O que é Polimorfismo?
112 O que são tipos complexos?

Depois de dominar esses conceitos, o próximo passo natural é estudar os princípios SOLID.

Delegates, eventos e generics

Em seguida, a conversa sobe de nível. Delegates e generics aparecem em todo framework moderno, então entender a base deles facilita muito o uso de ASP.NET e LINQ.

Nº Pergunta
113 O que são Delegates?
114 O que são events?
115 Qual a diferença entre events e delegates?
116 O que são generics?
117 Como restringimos um tipo genérico?

Se delegates ainda parecem abstratos, o artigo sobre delegates no C# traz exemplos práticos.

Perguntas de entrevista de C# sobre exceções e async

Por fim, as perguntas de entrevista de C# chegam ao tratamento de erros, à programação assíncrona e a interfaces utilitárias. Nesse bloco, a qualidade da resposta revela bastante sobre experiência real.

Nº Pergunta
118 Como tratamos erros no C#?
119 Qual a finalidade do finally?
120 Para que serve o TryParse?
121 O que são Tasks?
122 Para que serve async/await?
123 Qual a diferença entre Task.FromResult e o uso de await?
124 Para que usamos a interface IEquatable?
125 Para que usamos a interface IComparable?
126 Quando utilizamos a interface IDisposable?
127 O que são Extension methods?

Para a última pergunta, veja o guia de extension methods no C#.

Como se preparar para a entrevista

Primeiro, separe as perguntas que você não soube responder e estude um bloco por vez.

Depois, escreva um pequeno exemplo de código para cada conceito. Dessa forma, a resposta deixa de ser teórica e passa a mostrar prática.

Também vale treinar com outra pessoa fazendo o papel de recrutador. Assim, você se acostuma a explicar com clareza, mesmo sob pressão.

Por último, lembre que ninguém espera respostas perfeitas para todas as perguntas de entrevista de C#. O que conta é mostrar raciocínio, honestidade e vontade de aprender.

Conclusão

Os fundamentos do C# continuam sendo o melhor investimento para quem quer crescer com .NET. Afinal, toda tecnologia nova se apoia neles.

Use estas perguntas de entrevista de C# como diagnóstico, revise o que ficou fraco e volte à lista depois de algumas semanas.

Conte para nós o que achou das questões, se já se deparou com elas em entrevistas e, principalmente, como você as responderia. Para isso, participe da nossa comunidade no Discord.

Entrar no Discord

FAQ

Estas perguntas servem para vagas júnior, pleno e sênior?

Sim. Elas cobrem fundamentos, então valem para qualquer nível, embora a profundidade esperada na resposta cresça com a senioridade.

Preciso acertar todas as perguntas?

Não. Se você for bem na maior parte, sua base é boa, e as lacunas mostram o que revisar.

Por que perguntar sobre o CLR em uma entrevista?

Porque entender a plataforma explica comportamentos de memória, desempenho e compilação que a sintaxe sozinha não mostra.

As perguntas cobrem ASP.NET ou Entity Framework?

Não. O foco é a linguagem C# e a base do .NET, que servem de alicerce para esses frameworks.

Qual a melhor forma de estudar estas perguntas?

Estude um bloco por vez, escreva exemplos de código e treine respostas em voz alta.