Q1. ¿En cuál de estas situaciones son las interfaces mejores que las clases abstractas?
Cuando necesitas definir las características de un tipo de objeto, usa una interfaz. Cuando necesitas definir las capacidades de un tipo de objeto, usa una clase abstracta.
Las interfaces son un legado de versiones anteriores de C#, e intercambiables con la nueva característica de clase abstracta.
Cuando necesitas una lista de capacidades y datos que son agnósticos a las clases, usa una interfaz. Cuando necesitas que un tipo de objeto comparta características, usa una clase abstracta.
Deberías usar tanto una interfaz como una clase abstracta al definir cualquier objeto complejo.
Q2. ¿Cuál afirmación es verdadera acerca de los delegados?
Los delegados no son compatibles con la versión actual de C#
No se pueden usar como devoluciones de llamada.
Solo se pueden pasar variables a los delegados como parámetros.
Q5. ¿Cuál es la diferencia entre las palabras clave ref y out?
Las variables pasadas especifican que el parámetro es un parámetro de salida, mientras que ref especifica que una variable puede pasarse a una función sin inicializarse.
Las variables pasadas a ref pueden pasarse a una función sin inicializarse, mientras que out especifica que el valor es un valor de referencia que puede cambiarse dentro del método de llamada.
Las variables pasadas a out pueden pasarse a una función sin inicializarse, mientras que ref especifica que el valor es un valor de referencia que puede cambiarse dentro del método de llamada.
Las variables pasadas a ref especifican que el parámetro es un parámetro de salida, mientras que out especifica que una variable puede pasarse a una función sin inicializarse.
Q16. ¿En qué orden se imprimirían los nombres de los empleados en este ejemplo?
string[]employees = { "Joe", "Bob", "Carol", "Alice", "Will" };IEnumerable<string> employeeQuery = from person in employees
orderby person
select person;
foreach(string employee in employeeQuery)
{
Console.WriteLine(employee);}