As 50 principais perguntas e respostas da entrevista em C# (2025)

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.

Objeto em C#

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 é uma classe abstrata que possui apenas métodos abstratos públicos, e os métodos possuem apenas a declaração e não a definição. Esses métodos abstratos devem ser implementados nas classes herdadas.

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() ?

utilização 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?

utilização 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 uma classe abstrata?

As interfaces possuem todos os métodos tendo apenas declaração, mas nenhuma definição. Numa classe abstrata, podemos ter alguns métodos concretos. Em uma classe de interface, todos os métodos são públicos. Uma classe abstrata 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 com objetos prontos para serem usados. Ele rastreia o objeto que está em uso no momento e o 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?

Estruturas são variáveis ​​de tipo valor e classes são tipos de referência. Estruturas armazenadas na pilha causam sobrecarga adicional, mas uma recuperação mais rápida. Estruturas 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” tem o rastreamento da pilha a partir de seu ponto de lançamento. É sempre aconselhável usar “throw” 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();
   }
 }
}

Essas perguntas da entrevista também ajudarão em sua viva (oral)