C# y .NET Framework II Flashcards

1
Q

¿Qué diferencia hay entre String, StringBuilder y char[]?

A

String es inmutable; StringBuilder permite modificaciones sin crear nuevos objetos; char[] es un arreglo de caracteres modificable.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué significa que una clase sea sealed?

A

Una clase sealed no puede ser heredada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Para qué sirve el operador ?? en C#?

A

Es el operador de coalescencia nula, devuelve el valor izquierdo si no es null, si no el derecho.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué es un enum y cómo lo utilizarías?

A

Un enum es una lista de constantes con nombre; útil para representar estados, tipos o categorías.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué es un Nullable<T> y cómo se declara?</T>

A

Se declara como int? x = null;, permite asignar null a tipos de valor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Cuál es la diferencia entre IEnumerable y IQueryable?

A

IEnumerable se evalúa en memoria; IQueryable permite construir la consulta para que sea ejecutada en la base de datos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Qué hace el método SelectMany() en LINQ?

A

Aplana una colección de colecciones en una sola secuencia.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Cómo usarías GroupBy en una colección de objetos?

A

Agrupando por una propiedad: list.GroupBy(x => x.Categoria).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Cuál es la diferencia entre First(), FirstOrDefault(), y SingleOrDefault()?

A

First() lanza excepción si no encuentra; FirstOrDefault() devuelve null o default; SingleOrDefault() espera un solo resultado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Cómo ordenar una lista por múltiples propiedades usando LINQ?

A

Usando OrderBy(x => x.Prop1).ThenBy(x => x.Prop2).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué es el Lazy Loading y cómo se habilita en Entity Framework?

A

Lazy Loading carga datos relacionados automáticamente al accederlos, si están configurados como virtual y no se desactivó.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Cuál es la diferencia entre DbSet<T> y DbContext?</T>

A

DbSet<T> representa una colección de entidades; DbContext es la unidad de trabajo que maneja el acceso a datos.</T>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué significa hacer un Migration en EF?

A

Es una forma de aplicar cambios en el modelo a la base de datos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Cómo harías una consulta con filtrado dinámico en EF?

A

Combinando filtros con expresiones lambda según condiciones opcionales.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Cómo evitarías problemas de N+1 en Entity Framework?

A

Usando .Include() para cargar relaciones de manera explícita.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Qué es un try-finally y cuándo se usa sin catch?

A

Se usa cuando necesitas asegurar que un bloque se ejecute al salir del try, incluso si hay error (por ejemplo, liberar recursos).

17
Q

¿Cómo manejas múltiples excepciones específicas en un solo bloque try?

A

Usando múltiples bloques catch para diferentes tipos de excepción.

18
Q

¿Qué son los locks en C# y cómo ayudan a evitar condiciones de carrera?

A

Un lock evita que varios hilos accedan a una sección de código simultáneamente.

19
Q

¿Qué es async/await y cómo mejora el rendimiento?

A

Permite ejecutar tareas asincrónicas sin bloquear el hilo principal.

20
Q

Cuál es la diferencia entre un hilo (Thread) y una tarea (Task)?

A

Thread es más bajo nivel y pesado; Task es una abstracción más ligera para operaciones asíncronas.

21
Q

¿Cómo accederías a valores en app.config o web.config?

A

Con ConfigurationManager.AppSettings[“clave”] o ConnectionStrings[“conexion”].

22
Q

¿Qué diferencia hay entre autenticación y autorización?

A

Autenticación verifica identidad; autorización verifica permisos.

23
Q

¿Cómo protegerías una conexión a base de datos en un archivo de configuración?

A

Encriptando la sección de configuración o usando Azure Key Vault.

24
Q

¿Qué es un Mock y cómo se usa en pruebas unitarias?

A

Un mock simula una dependencia para controlar su comportamiento en pruebas.

25
¿Qué herramientas conoces para realizar pruebas unitarias en .NET?
xUnit, NUnit, MSTest, Moq, AutoFixture.