Las 10 preguntas y respuestas más importantes de la entrevista C # OOP (Actualizado para 2019)

Tabla de contenido:

Anonim

Introducción C # OOP Entrevista Preguntas y respuestas

C # es un lenguaje de programación orientado a objetos, funcional, genérico y orientado a componentes. Se utiliza para crear una variedad de aplicaciones, es especialmente fuerte en la creación de aplicaciones y juegos de escritorio de Windows. El desarrollo web también se puede hacer de manera eficiente con C # y se ha vuelto cada vez más popular para los desarrollos móviles. Por lo tanto, es una excelente opción para cualquier programador que desee hacer desarrollo web y de juegos. Es un lenguaje de tipo estático, por lo que el código fuente escrito se verifica minuciosamente antes de que se convierta en una aplicación. Es un lenguaje complejo de aprender y dominarlo puede llevar una cantidad considerable de tiempo. Hay varias herramientas multiplataforma disponibles que permiten aplicaciones escritas en C # que se pueden usar en dispositivos móviles y de escritorio.

Si está buscando un trabajo relacionado con C # OOP, debe prepararse para las preguntas de la entrevista de C # OOP 2019. Aunque cada entrevista es diferente y el alcance de un trabajo también es diferente, podemos ayudarlo con las principales preguntas de la entrevista de C # OOP con respuestas, que lo ayudarán a dar el salto y lograr el éxito en su entrevista.

A continuación se muestran las principales preguntas de la entrevista C # OOP de 2019 que se hacen con frecuencia en una entrevista. Estas preguntas principales se dividen en dos partes:

Parte 1 - Preguntas de la entrevista C # OOP (Básico)

Esta primera parte cubre preguntas y respuestas básicas de la entrevista de C # OOP

1. ¿Cuál es la diferencia entre Interface y Abstract Class?

Responder:
Algunas diferencias se enumeran a continuación:

  • Una clase abstracta puede tener métodos no abstractos (métodos concretos) mientras que en el caso de la interfaz todos los métodos deben ser abstractos.
  • Una clase abstracta puede declarar o usar cualquier variable, mientras que una interfaz no puede hacerlo.
  • En una clase abstracta, todos los miembros o funciones de datos son privados de forma predeterminada, mientras que en la interfaz todos son públicos, no podemos cambiarlos manualmente.
  • Un constructor de uso de clase abstracta mientras que en una interfaz no tenemos ningún tipo de constructor.
  • Una clase puede implementar cualquier número de interfaces, pero una subclase puede utilizar como máximo una sola clase abstracta.

2. ¿Qué son los delegados y sus usos?

Responder:
Un objeto delegado es una variable de tipo de referencia que se utiliza para contener la referencia a un método. La referencia se puede cambiar en tiempo de ejecución que está en manos de un objeto de un delegado. Un objeto delegado puede contener muchas referencias de funciones, que también se conoce como Lista de invocación que hace referencia a funciones en una secuencia FIFO, podemos ref.
Los delegados se utilizan especialmente para implementar eventos y los métodos de devolución de llamada. Todos los delegados se derivan implícitamente del Sistema. Delegado de clase.

Pasemos a las siguientes preguntas de la entrevista de C # OOP

3. ¿Cuál es la diferencia entre la unión tardía y la unión temprana?

Responder:
En Polimorfismo en tiempo de compilación o Enlace temprano, usaremos varios métodos con el mismo nombre pero con un tipo diferente de parámetro o tal vez el número o parámetro debido a esto, podemos realizar tareas diferentes con el mismo nombre de método en la misma clase conocido como Método de sobrecarga.

public class TestData
(
public int Add(int a, int b, int c)
(
return a + b + c;
)
public int Add(int a, int b)
(
return a + b;
)
)
class Program
(
static void Main(string() args)
(
TestData dataClass = new TestData();
int add2 = dataClass.Add(45, 34, 67);
int add1 = dataClass.Add(23, 34);
)
)

El polimorfismo dinámico / tiempo de ejecución también se conoce como unión tardía. Aquí, el nombre del método y la firma del método (el número de parámetros y el tipo de parámetro deben ser los mismos y pueden tener una implementación diferente). La anulación del método es un ejemplo de polimorfismo dinámico.

public class Drawing
(
public virtual double Area()
(
return 0;
)
)
public class Square : Drawing
(
public double Length ( get; set; )
public Square()
(
Length = 6;
)
public override double Area()
(
return Math.Pow(Length, 2);
)
)
public class Rectangle : Drawing
(
public double Height ( get; set; )
public double Width ( get; set; )
public Rectangle()
(
Height = 5.3;
Width = 3.4;
)
public override double Area()
(
return Height * Width;
)
)
class Program
(
static void Main(string() args)
(
Drawing square = new Square();
Console.WriteLine("Area :" + square.Area());
Drawing rectangle = new Rectangle();
Console.WriteLine("Area :" + rectangle.Area());
)
)

4. ¿Qué pasaría si las interfaces heredadas tienen nombres de métodos en conflicto?

Responder:
Estas son las preguntas comunes de la entrevista C # OOP formuladas en una entrevista. Si tenemos métodos en conflicto en una misma clase, no podemos implementar su cuerpo de forma independiente en la misma clase debido al mismo nombre y la misma firma, por lo que debemos usar el nombre de la interfaz antes del nombre del método para eliminar esta confusión.

interface testInterface1 (
void Show();
)
interface testInterface2 (
void Show();
)
class Abc: testInterface1,
testInterface2 (
void testInterface1.Show() (
Console.WriteLine("For testInterface1 !!");
)
void testInterface2.Show() (
Console.WriteLine("For testInterface2 !!");
)
)

5. ¿Cuáles son las diferentes formas en que un método puede sobrecargarse?

Responder:
La sobrecarga de métodos es otro nombre para el polimorfismo en tiempo de compilación, donde podemos crear un método con el mismo nombre pero con una firma diferente. Se realiza en tiempo de compilación y podemos hacerlo de varias maneras, pero el nombre del método seguirá siendo el mismo.

Varios parámetros pueden ser diferentes.
El tipo de parámetro puede ser diferente.
El orden del parámetro puede ser diferente.

Ejemplo

static int volume ( int x )(
return (x * x * x);
)
static double volume (float f, int i)(
return 3.14 * f * f * I;
)
static long volume (long l, int b, int n)(
return l * b * h;
)

Parte 2 - Preguntas de la entrevista C # OOP (Avanzado)

Esta primera parte cubre preguntas y respuestas avanzadas de la entrevista de C # OOP

6. ¿Qué es un modificador de accesibilidad y cuántos hay en C #?

Responder:
Los modificadores de acceso son palabras clave utilizadas para especificar la accesibilidad declarada de un miembro o un tipo. En C # hay 5 varios tipos de modificadores de acceso.

Público: no hay restricciones para acceder a miembros públicos.
Privado: acceso limitado dentro de una definición de clase, si no se especifica ninguno, este es el valor predeterminado.
Protegido: el acceso está limitado a la definición de clase y a cualquier clase que herede de la clase.
Interno: el acceso está limitado exclusivamente a las clases definidas por el proyecto actual
El miembro interno protegido se puede acceder desde cualquier parte del mismo ensamblado y también se puede acceder heredando esa clase, solo se puede acceder fuera del ensamblado en la clase derivada.

7. ¿Qué es un método virtual en C #?

Responder:
Un método virtual es un método que se puede redefinir en clases derivadas. Un método virtual tiene una implementación en una clase base, así como derivada de la clase. Se utiliza cuando la funcionalidad básica de un método es la misma, pero a veces se necesita más funcionalidad en la clase derivada. Se crea un método virtual en la clase base que se puede anular en la clase derivada. Creamos un método virtual en la clase base usando la palabra clave virtual y ese método se anula en la clase derivada usando la palabra clave override.
Cuando se invoca un método virtual, se verifica el tipo de tiempo de ejecución del objeto para un miembro superior. Se llama al miembro superior en la clase más derivada, que podría ser el miembro original si ninguna clase derivada ha anulado al miembro. Por defecto, los métodos no son virtuales. No podemos anular un método no virtual.

Pasemos a las siguientes preguntas de la entrevista de C # OOP

8. ¿Cómo evitar NULL en C #?

Responder:
Nulo no es un objeto. Podemos tener una clase, pero una variable con un valor NULL significa que no apunta a ningún objeto. Podríamos encontrarnos con un fragmento de código que contiene muchas declaraciones condicionales que verificarían si el valor de una variable es NULL. Veamos un método estático:

cadena estática pública DisplayUpperString (cadena s) (

string upper = string.Empty;
If( s == null ) (
upper = null;
)
else (
upper = s.ToUpper();
)
return upper;
)

Este código está bien, y convierte a mayúsculas una cadena dada.
Pero desde una perspectiva OO, considere construir un objeto que no represente nada, en lugar de evaluarlo para NULL.

Cadena estática pública DisplayUpperString (PossibleString s) (
cadena superior = s.ToPossibleUpper ();
volver arriba;
)

Ahora la función está menos abarrotada, es más legible y ya no usa la verificación de un valor NULL.

9. ¿Cuál es el método de extensión en C # y cómo usarlos?

Responder:
Estas son las preguntas frecuentes de la entrevista C # OOP en una entrevista. Un método de extensión es un tipo especial de método estático, pero se les llama como si fueran métodos de instancia en el tipo extendido. Este método le permite agregar métodos a los tipos existentes sin crear un nuevo tipo derivado, volver a compilar o modificar el tipo original. Los métodos de extensión solo tienen alcance cuando importa explícitamente el espacio de nombres en su código fuente con una directiva using.

10. ¿Se puede usar esta palabra clave dentro de un método estático?

Responder:
Como "esta" palabra clave devuelve una referencia a la instancia actual de una clase, no podemos usar esto dentro de un método estático. Y los miembros estáticos existen sin ninguna instancia de la clase y llaman con el nombre de la clase, no por instancia. Por lo tanto, podemos decir que "esta" palabra clave es un tipo especial de variable de referencia que se define implícitamente dentro de cada constructor y método no estático como primer parámetro de la clase de tipo en la que se define.

Artículo recomendado

Esta ha sido una guía para la Lista de preguntas y respuestas de la entrevista C # OOP para que el candidato pueda tomar medidas enérgicas contra estas preguntas de la entrevista C # OOP fácilmente. Aquí en esta publicación, hemos estudiado las principales preguntas de la entrevista de C # OOP que a menudo se hacen en las entrevistas. También puede consultar los siguientes artículos para obtener más información:

  1. Preguntas de la entrevista administrativa de Hadoop
  2. 12 preguntas increíbles de la entrevista Spark
  3. 10 preguntas importantes de la entrevista Ab initio
  4. Las 25 preguntas más importantes de la entrevista de informática
  5. ¿Cuáles son los beneficios de C # y Js?