Las 50 preguntas y respuestas principales de las entrevistas de C# (2026)

Preguntas y respuestas de la entrevista de C# para principiantes y 2/3/5/10 aรฑos de experiencia

Aquรญ hay preguntas y respuestas de la entrevista de C# para candidatos mรกs nuevos y con 5 o 10 aรฑos de experiencia para conseguir el trabajo de sus sueรฑos.

1) ยฟQuรฉ es C#?

C# es un lenguaje administrado, seguro para tipos y orientado a objetos que se compila mediante .Net framework para generar Microsoft Lengua Intermedia.

๐Ÿ‘‰ Descarga gratuita de PDF: Entrevista C# Preguntas y respuestas de la entrevista


2) Explicar los tipos de comentarios en C# con ejemplos

Linea sola

Ejemplo:

//This is a single line comment

ii. Lรญnea mรบltiple (/* */)

Ejemplo:

/*This is a multiple line comment
We are in line 2
Last line of comment*/

III. Comentarios XML (///).

Ejemplo:

/// summary;
/// Set error message for multilingual language.
/// summary

3) ยฟSe pueden ejecutar varios bloques catch?

No, no se pueden ejecutar varios bloques catch de tipo similar. Una vez que se ejecuta el cรณdigo de captura adecuado, el control se transfiere al bloque finalmente y luego se ejecuta el cรณdigo que sigue al bloque finalmente.


4) ยฟCuรกl es la diferencia entre pรบblico, estรกtico y vacรญo?

Las variables o mรฉtodos pรบblicos declarados son accesibles desde cualquier lugar de la aplicaciรณn. Las variables o mรฉtodos estรกticos declarados son accesibles globalmente sin crear una instancia de la clase. Por defecto, los miembros estรกticos no son accesibles globalmente, depende del tipo de acceso modificado utilizado. El compilador almacena la direcciรณn del mรฉtodo como punto de entrada y utiliza esta informaciรณn para comenzar la ejecuciรณn antes de que se cree cualquier objeto. Y Void es un modificador de tipo que indica que el mรฉtodo o variable no devuelve ningรบn valor.

Objeto en C#

Preguntas de la entrevista C#


5) ยฟQuรฉ es un objeto?

Un objeto es una instancia de una clase a travรฉs de la cual accedemos a los mรฉtodos de esa clase. La palabra clave "Nuevo" se utiliza para crear un objeto. Una clase que crea un objeto en la memoria contendrรก informaciรณn sobre los mรฉtodos, variables y comportamiento de esa clase.


6) Definir constructores

Un constructor es una funciรณn miembro de una clase que tiene el mismo nombre que su clase. El constructor se invoca automรกticamente cada vez que se crea una clase de objeto. Construye los valores de los miembros de datos mientras inicializa la clase.


7) ยฟQuรฉ son las matrices irregulares?

La matriz que tiene elementos de tipo matriz se llama matriz irregular. Los elementos pueden ser de diferentes dimensiones y tamaรฑos. Tambiรฉn podemos llamar a Jagged Array como un conjunto de matrices.


8) ยฟCuรกl es la diferencia entre los parรกmetros de referencia y salida?

Un argumento pasado como ref debe inicializarse antes de pasar al mรฉtodo, mientras que el parรกmetro out no necesita inicializarse antes de pasar a un mรฉtodo.


9) ยฟCuรกl es el uso de la declaraciรณn "usar" en C#?

El bloque "usar" se utiliza para obtener un recurso y procesarlo y luego eliminarlo automรกticamente cuando se completa la ejecuciรณn del bloque.


10) ยฟQuรฉ es la serializaciรณn?

Cuando queremos transportar un objeto a travรฉs de una red, tenemos que convertir el objeto en un flujo de bytes. El proceso de convertir un objeto en un flujo de bytes se llama serializaciรณn. Para que un objeto sea serializable, debe implementar la interfaz ISerialize. La deserializaciรณn es el proceso inverso de crear un objeto a partir de un flujo de bytes.


11) ยฟPodemos usar "este" comando dentro de un mรฉtodo estรกtico?

No podemos usar 'Esto' en un mรฉtodo estรกtico porque solo podemos usar variables/mรฉtodos estรกticos en un mรฉtodo estรกtico.


12) ยฟCuรกl es la diferencia entre constantes y de solo lectura?

Las variables constantes se declaran e inicializan en tiempo de compilaciรณn. El valor no se puede cambiar despuรฉs. El modo de solo lectura se usa solo cuando queremos asignar el valor en tiempo de ejecuciรณn.


13) ยฟQuรฉ es una clase de interfaz? Pon un ejemplo de ello

Una interfaz es un abstracclase t que solo tiene abs pรบblicotracmรฉtodos t, y los mรฉtodos solo tienen la declaraciรณn y no la definiciรณn. Estos abstracLos mรฉtodos t deben implementarse en las clases heredadas.

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) ยฟQuรฉ son los tipos de valor y los tipos de referencia?

Un tipo de valor contiene un valor de datos dentro de su propio espacio de memoria. Ejemplo

int a = 30;

El tipo de referencia almacena la direcciรณn del Objeto donde se almacena el valor. Es un puntero a otra ubicaciรณn de memoria.

string b = "Hello Guru99!!";

15) ยฟQuรฉ son el control personalizado y el control de usuario?

Los controles personalizados son controles generados como cรณdigo compilado (DLL), que son mรกs fรกciles de usar y se pueden agregar a la caja de herramientas. Los desarrolladores pueden arrastrar y soltar controles en sus formularios web. Los atributos pueden, en tiempo de diseรฑo. Podemos agregar fรกcilmente controles personalizados a mรบltiples aplicaciones (si son DLL compartidas). Por lo tanto, si son privados, podemos copiarlos en el directorio dll bin de la aplicaciรณn web y luego agregar una referencia para poder usarlos.

Los controles de usuario son muy similares a los archivos de inclusiรณn de ASP y son fรกciles de crear. Los controles de usuario no se pueden colocar en la caja de herramientas y arrastrarlos y soltarlos desde ella. Tienen su propio diseรฑo y cรณdigo subyacente. La extensiรณn de archivo para los controles de usuario es ascx.


16) ยฟQuรฉ son las clases selladas en C#?

Creamos clases selladas cuando queremos restringir la clase que se heredarรก. Modificador sellado utilizado para evitar la derivaciรณn de una clase. Si especificamos a la fuerza una clase sellada como clase base, se produce un error en tiempo de compilaciรณn.


17) ยฟQuรฉ es la sobrecarga de mรฉtodos?

La sobrecarga de mรฉtodos consiste en crear varios mรฉtodos con el mismo nombre con firmas รบnicas en la misma clase. Cuando compilamos, el compilador utiliza la resoluciรณn de sobrecarga para determinar el mรฉtodo especรญfico que se invocarรก.


18) ยฟCuรกl es la diferencia entre Array y Arraylist?

En una matriz, solo podemos tener elementos del mismo tipo. El tamaรฑo de la matriz es fijo en comparaciรณn. Una lista de matrices es similar a una matriz, pero no tiene un tamaรฑo fijo.


19) ยฟSe puede anular un mรฉtodo virtual privado?

No, porque no son accesibles fuera de clase.


20) Describa el modificador de accesibilidad "interno protegido".

Las variables/mรฉtodos internos protegidos son accesibles dentro del mismo ensamblaje y tambiรฉn desde las clases que se derivan de esta clase principal.


21) ยฟCuรกles son las diferencias entre las clases System.String y System.Text.StringBuilder?

System.String es inmutable. Cuando modificamos el valor de una variable de cadena, se asigna una nueva memoria al nuevo valor y se libera la asignaciรณn de memoria anterior. System.StringBuilder fue diseรฑado para tener un concepto de cadena mutable donde se pueden realizar una variedad de operaciones sin asignar una ubicaciรณn de memoria separada para la cadena modificada.


22) ยฟCuรกl es la diferencia entre System.Array.CopyTo() y System.Array.Clone()?

El uso de Clone() mรฉtodo, creamos un nuevo objeto de matriz que contiene todos los elementos en la matriz original y usando CopyTo() mรฉtodo. Todos los elementos de una matriz existente se copian en otra matriz existente. Ambos mรฉtodos realizan una copia superficial.


23) ยฟCรณmo podemos ordenar los elementos del Array en orden descendente?

El uso de Sort() mรฉtodos seguidos por Reverse() mรฉtodo.


24) Escriba la sintaxis de C# para detectar una excepciรณn.

Para detectar una excepciรณn, utilizamos bloques try-catch. El bloque de captura puede tener un parรกmetro de tipo system.Exception.

P.ej:

try {
    GetAllData();
} 
catch (Exception ex) {
}

En el ejemplo anterior, podemos omitir el parรกmetro de la declaraciรณn catch.


25) ยฟCuรกl es la diferencia entre una interfaz y un abs?tracยฟClase t?

Las interfaces tienen todos los mรฉtodos que solo tienen declaraciรณn pero no definiciรณn. En un abstracEn una clase t, podemos tener algunos mรฉtodos concretos. En una clase de interfaz, todos los mรฉtodos son pรบblicos. Una clase abstracLa clase t puede tener mรฉtodos privados.


26) ยฟCuรกl es la diferencia entre los mรฉtodos Finalize() y Dispose()?

Dispose() Se llama cuando queremos que un objeto libere cualquier recurso no administrado con รฉl. Por otro lado, Finalize() se utiliza para el mismo propรณsito, pero no asegura la recolecciรณn de basura de un objeto.


27) ยฟQuรฉ son las referencias circulares?

La referencia circular es una situaciรณn en la que dos o mรกs recursos son interdependientes entre sรญ, provoca la condiciรณn de bloqueo y hace que los recursos sean inutilizables.


28) ยฟQuรฉ son los genรฉricos en C#.NET?

Los genรฉricos se utilizan para crear clases de cรณdigo reutilizables con el fin de reducir la redundancia del cรณdigo, aumentar la seguridad de los tipos y el rendimiento. Con los genรฉricos, podemos crear clases de colecciรณn. Para crear una colecciรณn genรฉrica, se debe utilizar el espacio de nombres System.Collections.Generic en lugar de clases como ArrayList en el espacio de nombres System.Collections. Los genรฉricos promueven el uso de tipos parametrizados.


29) ยฟQuรฉ es un grupo de objetos en .NET?

Un grupo de objetos es un contenedor que tiene objetos listos para ser utilizados. tracks el objeto que estรก en uso actualmente, nรบmero total de objetos en el grupo. Esto reduce la sobrecarga de crear y recrear objetos.


30) Enumere los tipos de excepciones comรบnmente utilizados en .net

ArgumentException, ArgumentNullException, ArgumentOutOfRangeException, ArithmeticException, DivideByZeroException, OverflowException, IndexOutOfRangeException, InvalidCastException, no vรกlidoOperationException, IOEndOfStreamException, NullReferenceException, OutOfMemoryException, StackOverflowException, etc.


31) ยฟQuรฉ son las excepciones personalizadas?

A veces hay algunos errores que deben manejarse segรบn los requisitos del usuario. Para ellos se utilizan excepciones personalizadas y se utilizan excepciones definidas.


32) ยฟQuรฉ son los delegados?

Los delegados son los mismos, son punteros de funciรณn en C++, pero la รบnica diferencia es que son seguros para escribir, a diferencia de los punteros de funciรณn. Se requieren delegados porque se pueden usar para escribir funciones de tipo seguro mucho mรกs genรฉricas.


33) ยฟCรณmo se hereda una clase en otra clase en C#?

En C#, los dos puntos se utilizan como operador de herencia. Solo hay que colocar dos puntos y luego el nombre de la clase.

public class DerivedClass : BaseClass

34) ยฟCuรกl es la clase base en .net de la que se derivan todas las clases?

System.Object

35) ยฟCuรกl es la diferencia entre anulaciรณn de mรฉtodos y sobrecarga de mรฉtodos?

En la anulaciรณn de mรฉtodos, cambiamos la definiciรณn del mรฉtodo en la clase derivada que cambia el comportamiento del mรฉtodo. La sobrecarga de mรฉtodos consiste en crear un mรฉtodo con el mismo nombre dentro de la misma clase con firmas diferentes.


36) ยฟCuรกles son las diferentes formas en que se puede sobrecargar un mรฉtodo?

Los mรฉtodos se pueden sobrecargar utilizando diferentes tipos de datos para un parรกmetro, diferente orden de parรกmetros y diferente nรบmero de parรกmetros.


37) ยฟPor quรฉ no puedes especificar el modificador de accesibilidad para los mรฉtodos dentro de la interfaz?

En una interfaz tenemos mรฉtodos virtuales que no tienen definiciรณn de mรฉtodo. Todos los mรฉtodos estรกn ahรญ para ser anulados en la clase derivada. Por eso todos son pรบblicos.


38) ยฟCรณmo podemos configurar la clase para que se herede, pero evitar que se anule el mรฉtodo?

Declare la clase como pรบblica y selle el mรฉtodo para evitar que se anule.


39) ยฟQuรฉ sucede si las interfaces heredadas tienen nombres de mรฉtodos en conflicto?

La implementaciรณn depende de usted, ya que el mรฉtodo estรก dentro de su propia clase. Puede haber un problema cuando los mรฉtodos de diferentes interfaces esperan datos diferentes, pero en lo que respecta al compilador, no hay problema.


40) ยฟCuรกl es la diferencia entre una Estructura y una Clase?

Las estructuras son variables de tipo valor, y las clases son tipos de referencia, una distinciรณn que aparece con frecuencia en Preguntas de entrevista de OOPSLas estructuras almacenadas en la pila generan una sobrecarga adicional, pero permiten una recuperaciรณn mรกs rรกpida, y las estructuras no se pueden heredar.


41) ยฟCรณmo utilizar tipos que aceptan valores NULL en .Net?

Los tipos de valor pueden tomar sus valores normales o un valor nulo. Estos tipos se denominan tipos que aceptan valores NULL.

Int? someID = null;
If(someID.HasVAlue)
{
}

42) ยฟCรณmo podemos crear una matriz con valores no predeterminados?

Podemos crear una matriz con valores no predeterminados usando Enumerable.Repeat.


43) ยฟCuรกl es la diferencia entre los operadores "es" y "como" en C#?

El operador โ€œisโ€ se utiliza para comprobar la compatibilidad de un objeto con un tipo dado y devuelve el resultado como booleano.

El operador "as" se utiliza para convertir un objeto a un tipo o clase.


44) ยฟQuรฉ es un delegado de multidifusiรณn?

Un delegado que tiene varios controladores asignados se denomina delegado de multidifusiรณn. Cada controlador estรก asignado a un mรฉtodo.


45) ยฟQuรฉ son los indexadores en C# .NET?

Los indexadores son conocidos como inteligentes matrices en C#. Permite indexar las instancias de una clase de la misma forma que una matriz.

P.ej:

public int this[int index]    // Indexer declaration

46) ยฟCuรกl es la diferencia entre "throw" y "throw ex" en .NET?

La instrucciรณn โ€œthrowโ€ conserva la pila de errores original, mientras que โ€œthrow exโ€ tiene la pila trace desde su punto de lanzamiento. Siempre se recomienda usar โ€œlanzamientoโ€ porque proporciona informaciรณn de error mรกs precisa.


47) ยฟCuรกles son los atributos de C# y su importancia?

C# proporciona a los desarrolladores una forma de definir etiquetas declarativas en determinadas entidades, por ejemplo. La clase, el mรฉtodo, etc. se denominan atributos. La informaciรณn del atributo se puede recuperar en tiempo de ejecuciรณn utilizando Reflection.


48) ยฟCรณmo implementar un patrรณn de diseรฑo singleton en C#?

En un patrรณn singleton, una clase solo puede tener una instancia y proporciona un punto de acceso a ella globalmente.

P.ej:

Public sealed class Singleton
{
Private static readonly Singleton _instance = new Singleton();
}

49) ยฟCuรกl es la diferencia entre directcast y ctype?

DirectCast se utiliza para convertir el tipo de objeto que requiere que el tipo en tiempo de ejecuciรณn sea el mismo que el tipo especificado en DirectCast.

Ctype se utiliza para la conversiรณn donde la conversiรณn se define entre la expresiรณn y el tipo.


50) ยฟEl cรณdigo C# es cรณdigo administrado o no administrado?

C# es cรณdigo administrado porque Common Language Runtime puede compilar cรณdigo C# en un lenguaje intermedio.


51) ยฟQuรฉ es la aplicaciรณn de consola?

Una aplicaciรณn de consola es una aplicaciรณn que se puede ejecutar en el sรญmbolo del sistema en Windows. Para cualquier principiante en .Net, lo ideal es que, para empezar, crear una aplicaciรณn de consola sea el primer paso.


52) Dรฉ un ejemplo de cรณmo eliminar un elemento de la cola.

El mรฉtodo de eliminaciรณn de cola se utiliza para eliminar un elemento de la cola.

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();
   }
 }
}

Estos C# y relacionados Preguntas de entrevista sobre WPF Tambiรฉn te ayudarรก en tu examen oral.

Resumir este post con: