As 50 principais perguntas e respostas da entrevista em C# (2026)
Perguntas e respostas da entrevista em C# para calouros e 2/3/5/10 anos de experiรชncia
Aqui estรฃo as perguntas e respostas da entrevista em C # para candidatos mais novos e com 5 ou 10 anos de experiรชncia para conseguir o emprego dos sonhos.
1) O que รฉ C#?
C# รฉ uma linguagem gerenciada, orientada a objetos e com seguranรงa de tipo, compilada pela estrutura .Net para gerar Microsoft Linguagem Intermediรกria.
๐ Download gratuito de PDF: Perguntas e respostas da entrevista em C#
2) Explique os tipos de comentรกrios em C# com exemplos
รnica linha
Exemplo:
//This is a single line comment
ii. Linha mรบltipla (/* */)
Exemplo:
/*This is a multiple line comment We are in line 2 Last line of comment*/
iii. Comentรกrios XML (///).
Exemplo:
/// summary; /// Set error message for multilingual language. /// summary
3) Vรกrios blocos catch podem ser executados?
Nรฃo, vรกrios blocos catch de tipo semelhante nรฃo podem ser executados. Depois que o cรณdigo de captura adequado รฉ executado, o controle รฉ transferido para o bloco final e, em seguida, o cรณdigo que segue o bloco final รฉ executado.
4) Qual รฉ a diferenรงa entre pรบblico, estรกtico e vazio?
Variรกveis โโou mรฉtodos declarados pรบblicos podem ser acessados โโem qualquer lugar do aplicativo. Variรกveis โโou mรฉtodos estรกticos declarados sรฃo globalmente acessรญveis sem criar uma instรขncia da classe. Os membros estรกticos, por padrรฃo, nรฃo sรฃo acessรญveis globalmente, dependendo do tipo de acesso modificado usado. O compilador armazena o endereรงo do mรฉtodo como ponto de entrada e usa essas informaรงรตes para iniciar a execuรงรฃo antes de qualquer objeto ser criado. E Void รฉ um modificador de tipo que afirma que o mรฉtodo ou variรกvel nรฃo retorna nenhum valor.
Perguntas da entrevista em C#
5) O que รฉ um objeto?
Um objeto รฉ uma instรขncia de uma classe atravรฉs da qual acessamos os mรฉtodos dessa classe. A palavra-chave โNovoโ รฉ usada para criar um objeto. Uma classe que cria um objeto na memรณria conterรก informaรงรตes sobre os mรฉtodos, variรกveis โโe comportamento dessa classe.
6) Definir Construtores
Um construtor รฉ uma funรงรฃo membro em uma classe que possui o mesmo nome de sua classe. O construtor รฉ invocado automaticamente sempre que uma classe de objeto รฉ criada. Ele constrรณi os valores dos membros de dados ao inicializar a classe.
7) O que sรฃo matrizes irregulares?
O Array que possui elementos do tipo array รฉ chamado Jagged Array. Os elementos podem ser de diferentes dimensรตes e tamanhos. Tambรฉm podemos chamar Jagged Array como um array de arrays.
8) Qual รฉ a diferenรงa entre os parรขmetros ref e out?
Um argumento passado como ref deve ser inicializado antes de passar para o mรฉtodo, enquanto o parรขmetro out nรฃo precisa ser inicializado antes de passar para um mรฉtodo.
9) Qual รฉ a utilidade da instruรงรฃo 'using' em C#?
O bloco 'using' รฉ usado para obter um recurso e processรก-lo e, em seguida, descartรก-lo automaticamente quando a execuรงรฃo do bloco for concluรญda.
10) O que รฉ serializaรงรฃo?
Quando queremos transportar um objeto atravรฉs de uma rede, temos que converter o objeto em um fluxo de bytes. O processo de conversรฃo de um objeto em um fluxo de bytes รฉ chamado de serializaรงรฃo. Para que um objeto seja serializรกvel, ele deve implementar a interface ISerialize. A desserializaรงรฃo รฉ o processo inverso de criaรงรฃo de um objeto a partir de um fluxo de bytes.
11) Podemos usar o comando โthisโ dentro de um mรฉtodo estรกtico?
Nรฃo podemos usar 'This' em um mรฉtodo estรกtico porque sรณ podemos usar variรกveis/mรฉtodos estรกticos em um mรฉtodo estรกtico.
12) Qual รฉ a diferenรงa entre constantes e somente leitura?
Variรกveis โโconstantes sรฃo declaradas e inicializadas em tempo de compilaรงรฃo. O valor nรฃo pode ser alterado posteriormente. Somente leitura รฉ usado apenas quando queremos atribuir o valor em tempo de execuรงรฃo.
13) O que รฉ uma classe de interface? Dรช um exemplo disso
Uma interface รฉ um conceito abstratotracclasse t que possui apenas abs pรบblicostract mรฉtodos, e os mรฉtodos possuem apenas a declaraรงรฃo e nรฃo a definiรงรฃo. Estes abstracOs mรฉtodos t devem ser implementados nas classes que herdam de outras classes.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
interface Guru99Interface
{
void SetTutorial(int pID, string pName);
String GetTutorial();
}
class Guru99Tutorial : Guru99Interface
{
protected int TutorialID;
protected string TutorialName;
public void SetTutorial(int pID, string pName)
{
TutorialID = pID;
TutorialName = pName;
}
public String GetTutorial()
{
return TutorialName;
}
static void Main(string[] args)
{
Guru99Tutorial pTutor = new Guru99Tutorial();
pTutor.SetTutorial(1,".Net by Guru99");
Console.WriteLine(pTutor.GetTutorial());
Console.ReadKey();
}
}
}
14) O que sรฃo tipos de valor e tipos de referรชncia?
Um tipo de valor contรฉm um valor de dados em seu prรณprio espaรงo de memรณria. Exemplo
int a = 30;
O tipo de referรชncia armazena o endereรงo do objeto onde o valor estรก sendo armazenado. ร um ponteiro para outro local de memรณria.
string b = "Hello Guru99!!";
15) O que sรฃo Controle Personalizado e Controle de Usuรกrio?
Controles personalizados sรฃo controles gerados como cรณdigo compilado (DLLs), sรฃo mais fรกceis de usar e podem ser adicionados ร caixa de ferramentas. Os desenvolvedores podem arrastar e soltar controles em seus formulรกrios da web. Os atributos podem, em tempo de design. Podemos facilmente adicionar controles personalizados a vรกrios aplicativos (se DLLs compartilhadas). Portanto, se eles forem privados, podemos copiar para dll para o diretรณrio bin do aplicativo da web e adicionar referรชncia e usรก-los.
Os controles de usuรกrio sรฃo muito semelhantes aos arquivos de inclusรฃo ASP e sรฃo fรกceis de criar. Os controles do usuรกrio nรฃo podem ser colocados na caixa de ferramentas e arrastados ou soltos dela. Eles tรชm seu design e code-behind. A extensรฃo do arquivo para controles de usuรกrio รฉ ascx.
16) O que sรฃo classes seladas em C#?
Criamos classes seladas quando queremos restringir a classe a ser herdada. Modificador selado usado para evitar a derivaรงรฃo de uma classe. Se especificarmos ร forรงa uma classe selada como classe base, ocorrerรก um erro em tempo de compilaรงรฃo.
17) O que รฉ sobrecarga de mรฉtodo?
A sobrecarga de mรฉtodos รฉ a criaรงรฃo de vรกrios mรฉtodos com o mesmo nome e assinaturas exclusivas na mesma classe. Quando compilamos, o compilador usa resoluรงรฃo de sobrecarga para determinar o mรฉtodo especรญfico a ser invocado.
18) Qual รฉ a diferenรงa entre Array e Arraylist?
Em um array, podemos ter apenas itens do mesmo tipo. O tamanho da matriz รฉ fixo quando comparado. Um arraylist รฉ semelhante a um array, mas nรฃo possui um tamanho fixo.
19) Um mรฉtodo virtual privado pode ser substituรญdo?
Nรฃo, porque eles nรฃo sรฃo acessรญveis fora da aula.
20) Descreva o modificador de acessibilidade โinterno protegidoโ.
Variรกveis/mรฉtodos internos protegidos sรฃo acessรญveis no mesmo assembly e tambรฉm nas classes derivadas desta classe pai.
21) Quais sรฃo as diferenรงas entre as classes System.String e System.Text.StringBuilder?
System.String รฉ imutรกvel. Quando modificamos o valor de uma variรกvel string, uma nova memรณria รฉ alocada para o novo valor e a alocaรงรฃo de memรณria anterior รฉ liberada. System.StringBuilder foi projetado para ter um conceito de string mutรกvel onde uma variedade de operaรงรตes podem ser executadas sem alocaรงรฃo de local de memรณria separado para a string modificada.
22) Qual รฉ a diferenรงa entre System.Array.CopyTo() e System.Array.Clone() ?
Utilizar painรฉis de piso ResinDek em sua unidade de self-storage em vez de concreto oferece diversos benefรญcios: Clone() mรฉtodo, criamos um novo objeto array contendo todos os elementos do Array original e usando CopyTo() mรฉtodo. Todos os elementos do array existente sรฃo copiados para outro array existente. Ambos os mรฉtodos realizam uma cรณpia superficial.
23) Como podemos classificar os elementos do Array em ordem decrescente?
Utilizar painรฉis de piso ResinDek em sua unidade de self-storage em vez de concreto oferece diversos benefรญcios: Sort() mรฉtodos seguidos por Reverse() mรฉtodo.
24) Anote a sintaxe C# para capturar uma exceรงรฃo
Para capturar uma exceรงรฃo, usamos blocos try-catch. O bloco Catch pode ter um parรขmetro do tipo system.Exception.
Por exemplo:
try {
GetAllData();
}
catch (Exception ex) {
}
No exemplo acima, podemos omitir o parรขmetro da instruรงรฃo catch.
25) Qual a diferenรงa entre uma interface e um valor absoluto?tracClasse T?
Interfaces possuem todos os mรฉtodos com apenas declaraรงรฃo, mas sem definiรงรฃo. Em um contexto absoluto,tracEm uma classe `t`, podemos ter alguns mรฉtodos concretos. Em uma classe de interface, todos os mรฉtodos sรฃo pรบblicos. Uma classe abstratatracA classe t pode ter mรฉtodos privados.
26) Qual รฉ a diferenรงa entre os mรฉtodos Finalize() e Dispose()?
Dispose() รฉ chamado quando queremos que um objeto libere quaisquer recursos nรฃo gerenciados com ele. Por outro lado, Finalize() รฉ utilizado para o mesmo propรณsito, mas nรฃo garante a coleta de lixo de um objeto.
27) O que sรฃo referรชncias circulares?
Referรชncia circular รฉ a situaรงรฃo em que dois ou mais recursos sรฃo interdependentes entre si, causando a condiรงรฃo de bloqueio e tornando os recursos inutilizรกveis.
28) O que sรฃo genรฉricos em C#.NET?
Os genรฉricos sรฃo usados โโpara criar classes de cรณdigo reutilizรกveis โโpara diminuir a redundรขncia do cรณdigo, aumentar a seguranรงa do tipo e o desempenho. Usando genรฉricos, podemos criar classes de coleรงรฃo. Para criar uma coleรงรฃo genรฉrica, o namespace System.Collections.Generic deve ser usado em vez de classes como ArrayList no namespace System.Collections. Genรฉricos promove o uso de tipos parametrizados.
29) O que รฉ um pool de objetos em .NET?
Um pool de objetos รฉ um contรชiner que contรฉm objetos prontos para serem usados. tracks รฉ o objeto que estรก atualmente em uso, nรบmero total de objetos no pool. Isso reduz a sobrecarga de criaรงรฃo e recriaรงรฃo de objetos.
30) Liste os tipos de exceรงรตes comumente usados โโem .net
ArgumentException, ArgumentNullException, ArgumentOutOfRangeException, ArithmeticException, DivideByZeroException, OverflowException, IndexOutOfRangeException, InvalidCastException, InvรกlidoOperationException, IOEndOfStreamException, NullReferenceException, OutOfMemoryException, StackOverflowException etc.
31) O que sรฃo exceรงรตes personalizadas?
รs vezes, hรก alguns erros que precisam ser tratados de acordo com os requisitos do usuรกrio. Exceรงรตes personalizadas sรฃo usadas para eles e sรฃo usadas exceรงรตes definidas.
32) O que sรฃo delegados?
Delegados sรฃo os mesmos ponteiros de funรงรฃo em C++, mas a รบnica diferenรงa รฉ que eles tรชm tipo seguro, diferentemente dos ponteiros de funรงรฃo. Os delegados sรฃo necessรกrios porque podem ser usados โโpara escrever funรงรตes seguras de tipo muito mais genรฉricas.
33) Como vocรช herda uma classe para outra classe em C#?
Dois pontos sรฃo usados โโcomo operador de heranรงa em C#. Basta colocar dois pontos e depois o nome da classe.
public class DerivedClass : BaseClass
34) Qual รฉ a classe base em .net da qual todas as classes sรฃo derivadas?
System.Object
35) Qual รฉ a diferenรงa entre substituiรงรฃo de mรฉtodo e sobrecarga de mรฉtodo?
Na substituiรงรฃo de mรฉtodo, alteramos a definiรงรฃo do mรฉtodo na classe derivada que altera o comportamento do mรฉtodo. A sobrecarga de mรฉtodo รฉ criar um mรฉtodo com o mesmo nome dentro da mesma classe e com assinaturas diferentes.
36) Quais sรฃo as diferentes maneiras pelas quais um mรฉtodo pode ser sobrecarregado?
Os mรฉtodos podem ser sobrecarregados usando diferentes tipos de dados para um parรขmetro, diferentes ordens de parรขmetros e diferentes nรบmeros de parรขmetros.
37) Por que vocรช nรฃo pode especificar o modificador de acessibilidade para mรฉtodos dentro da interface?
Em uma interface, temos mรฉtodos virtuais que nรฃo possuem definiรงรฃo de mรฉtodo. Todos os mรฉtodos existem para serem substituรญdos na classe derivada. ร por isso que todos eles sรฃo pรบblicos.
38) Como podemos definir a classe para ser herdada, mas evitar que o mรฉtodo seja substituรญdo?
Declare a classe como pรบblica e torne o mรฉtodo lacrado para evitar que seja substituรญdo.
39) O que acontece se as interfaces herdadas tiverem nomes de mรฉtodos conflitantes?
A implementaรงรฃo depende de vocรช, pois o mรฉtodo estรก dentro de sua prรณpria classe. Pode haver um problema quando os mรฉtodos de interfaces diferentes esperam dados diferentes, mas no que diz respeito ao compilador, vocรช estรก bem.
40) Qual รฉ a diferenรงa entre uma Struct e uma Classe?
Structs sรฃo variรกveis โโde tipo valor, e classes sรฃo tipos de referรชncia โ uma distinรงรฃo que surge frequentemente em Perguntas de entrevista sobre OOPSEstruturas armazenadas na pilha causam sobrecarga adicional, mas proporcionam recuperaรงรฃo mais rรกpida, e nรฃo podem ser herdadas.
41) Como usar tipos anulรกveis โโem .Net?
Os tipos de valor podem assumir seus valores normais ou um valor nulo. Esses tipos sรฃo chamados de tipos anulรกveis.
Int? someID = null;
If(someID.HasVAlue)
{
}
42) Como podemos criar um array com valores nรฃo padrรฃo?
Podemos criar um array com valores nรฃo padrรฃo usando Enumerable.Repeat.
43) Qual รฉ a diferenรงa entre os operadores โisโ e โasโ em c#?
O operador โisโ รฉ usado para verificar a compatibilidade de um objeto com um determinado tipo e retorna o resultado como Booleano.
O operador โasโ รฉ usado para converter um objeto em um tipo ou classe.
44) O que รฉ um delegado multicast?
Um delegado com vรกrios manipuladores atribuรญdos a ele รฉ chamado de delegado multicast. Cada manipulador รฉ atribuรญdo a um mรฉtodo.
45) O que sรฃo indexadores em C# .NET?
Indexadores sรฃo conhecidos como inteligentes matrizes em c#. Ele permite que as instรขncias de uma classe sejam indexadas da mesma forma que um array.
Por exemplo:
public int this[int index] // Indexer declaration
46) Qual รฉ a diferenรงa entre โthrowโ e โthrow exโ no .NET?
A instruรงรฃo โthrowโ preserva a pilha de erros original, enquanto โthrow exโ mantรฉm a pilha. trace a partir do ponto de lanรงamento. ร sempre aconselhรกvel usar "lanรงamento" porque fornece informaรงรตes de erro mais precisas.
47) Quais sรฃo os atributos C# e seu significado?
C# fornece aos desenvolvedores uma maneira de definir tags declarativas em determinadas entidades, por exemplo. Classe, mรฉtodo, etc. sรฃo chamados de atributos. As informaรงรตes do atributo podem ser recuperadas em tempo de execuรงรฃo usando Reflection.
48) Como implementar um padrรฃo de design singleton em C#?
Em um padrรฃo singleton, uma classe pode ter apenas uma instรขncia e fornecer um ponto de acesso global a ela.
Por exemplo:
Public sealed class Singleton
{
Private static readonly Singleton _instance = new Singleton();
}
49) Qual รฉ a diferenรงa entre directcast e ctype?
DirectCast รฉ usado para converter o tipo de objeto que requer que o tipo de tempo de execuรงรฃo seja igual ao tipo especificado no DirectCast.
Ctype รฉ usado para conversรฃo onde a conversรฃo รฉ definida entre a expressรฃo e o tipo.
50) O cรณdigo C# รฉ gerenciado ou nรฃo gerenciado?
C# รฉ cรณdigo gerenciado porque o Common Language Runtime pode compilar cรณdigo C# para linguagem intermediรกria.
51) O que รฉ aplicativo Console?
Um aplicativo de console รฉ um aplicativo que pode ser executado no prompt de comando em Windows. Para qualquer iniciante em .Net, construir um aplicativo de console รฉ idealmente o primeiro passo, para comeรงar.
52) Dรช um exemplo de remoรงรฃo de um elemento da fila
O mรฉtodo dequeue รฉ usado para remover um elemento da fila.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
class Program
{
static void Main(string[] args)
{
Queue qt = new Queue();
qt.Enqueue(1);
qt.Enqueue(2);
qt.Enqueue(3);
foreach (Object obj in qt)
{
Console.WriteLine(obj);
}
Console.WriteLine(); Console.WriteLine();
Console.WriteLine("The number of elements in the Queue " + qt.Count);
Console.WriteLine("Does the Queue contain " + qt.Contains(3));
Console.ReadKey();
}
}
}
Esses sรฃo C# e relacionados Perguntas de entrevista sobre WPF Isso tambรฉm ajudarรก na sua prova oral.
