¿Cuáles son las diferencias entre una clase y una interfaz en C#?
Una clase: Es como una plantilla o molde que se usa para la creación de objetos, contiene la definición de métodos, propiedades y constructor. Contiene un comportamiento predeterminado para los objetos que se van a crear.
Una interfaz: Es un contrato o tipo abstracto que se utiliza para garantizar las propiedades y métodos. Se usan para implementar patrones de diseño, principios de buenas prácticas y pruebas unitarias.
¿Cómo se define el constructor de una clase en C#?
Es un método que no devuelve nada y se llama igual que la clase
public class Person
{
private string last;
private string first;
public Person(string lastName, string firstName)
{
last = lastName;
first = firstName;
}
// Remaining implementation of Person class.
}
¿Qué son los modificadores de acceso y cómo funciona, menciona 2 de ellos?
Permiten especificar el alcance de clases, métodos y propiedades
Public: Puede accedido por donde dentro y fuera del contexto
Internal: Acceso por todos los componentes del Assembly
private: Sólo puede ser accedido dentro del contexto
¿Es posible heredar de múltiples clases en C#?
Solo se puede heredar de una sola clase únicamente
public class User : BaseUser
{
}
¿Es posible heredar de múltiples clases en C#?
Es posible implementar múltiples interfaces y es una buena práctica que hace parte de los principios SOLID, segregación de interfaces.
public class User : IUser, ISecurity, IBaseModel
{
}
Menciona 2 buenas prácticas que apliques al escribir código en C#
1. Nombramiento: asignar nombres claros y descriptivos a las variables, métodos y clases
2. Evitar enviar muchos parámetros a un método
3. Asignar una única responsabilidad a cada componente en el código. Aplicando principios SOLID
¿Que es el CLR?
1. Common Language Runtime
2. Compila el código a un lenguaje intermedio común Common Intermediate Language (CIL, anteriormente conocido como MSIL, por Microsoft Intermediate Language)
¿Qué es el garbage collector ?
1. Es un componente del CLR sirve para administrar la memoria de manera automática
2. Libera la memoria de los componentes que no se usan en el sistema y provee una manera segura de administrarla
3. Unmanaged resources o recursos no administrados deben manejarse de manera manual usando el método Dispose()
¿Qué es un método virtual en C#?
Significa que el método puede sobreescribirse lo cual permite aplicar el principio de polimorfismo
public virtual double Area()
{
return x * y;
}
public override double Area()
{
return x * y*2;
}
¿Qué es LINQ y cómo funciona?
1. Language-Integrated Query (LINQ) es un conjunto de extensiones que permite trabajar manipulación de datos de una manera fácil y simple
2. Query expression y método de extensión
//Query:
var esCuatro = from c in cadenas
where c == "Cuatro"
select c;
//Método:
var estudiantes = estudiantes.Where(p=> (p.Codigo_Curso == "C001" && p.Edad > 18)
Permite realizar operaciones sobre colecciones, minimizar el código y mejorar el rendimiento.