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

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 una clase abstracta que solo tiene métodos abstractos públicos, y los métodos solo tienen la declaración y no la definición. Estos métodos abstractos 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 (Dlls), son más fáciles de usar y se pueden agregar a la herramienta.box. 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). Entonces, si son privados, podemos copiarlos al dll en el directorio bin de la aplicación web y luego agregar referencias y poder usarlos.

Los controles de usuario son muy similares a los archivos de inclusión ASP y son fáciles de crear. Los controles de usuario no se pueden colocar en la herramientabox y arrastrado – caído de él. Tienen su diseño y código detrás. 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".

Se puede acceder a las variables/métodos internos protegidos dentro del mismo ensamblado 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()?

Usar 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?

Usar 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 una clase abstracta?

Las interfaces tienen todos los métodos que solo tienen declaración pero no definición. En una clase abstracta, podemos tener algunos métodos concretos. En una clase de interfaz, todos los métodos son públicos. Una clase abstracta 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 para disminuir la redundancia del código, aumentar la seguridad de tipos y el rendimiento. Usando 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. Realiza un seguimiento del objeto que está actualmente en uso y del 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, InvalidOperationException, 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 que los 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#?

Los dos puntos se utilizan como operador de herencia en C#. Simplemente coloque 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 cares estas bien.


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. Las estructuras almacenadas en la pila provocan una sobrecarga adicional pero una recuperación más rápida. 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 "es" se utiliza para verificar la compatibilidad de un objeto con un tipo determinado 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 declaración "throw" conserva la pila de errores original, mientras que "throw ex" tiene el seguimiento de la pila desde su punto de lanzamiento. Siempre se recomienda utilizar "lanzar" 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();
   }
 }
}

Estas preguntas de la entrevista también te ayudarán en tu viva(orals)