Este documento resume los conceptos fundamentales de C#, incluyendo las versiones del lenguaje, LINQ, eventos, colecciones, XAML, tareas paralelas y métodos asíncronos. Cubre temas como enumeraciones, estructuras, consultas LINQ, eventos, interfaces de colección, diseño de interfaces de usuario con XAML y el uso de tareas para aprovechar el paralelismo.
7. ¿Qué es una enumeración?
•Es un tipo por valor que consiste en un conjunto de
valores constantes.
•Se utiliza para denominar un Tipo de manera mas
estética (legible y comprensible).
•Puede ser de cualquier tipo Integral (excepto char)
8. •Son tipos por valor.
•Puede ser cualquier Tipo Entero:
- byte, sbyte, short, ushort, uint, int, long,
ulong.
•No pueden contener métodos,
propiedades, eventos.
•No implementan Herencia,
Implementación de Interfaces.
10. ¿Qué es una estructura?
•Es un tipo por valor que suele representar ‘objetos’
ligeros.
•La mayoría de los tipos básicos son estructuras.
•Se almacenan en la sección ‘Stack’
•Su rendimiento es mayor que las clases.
11. •Son tipos por valor
•Se pueden crear instancias sin el new
•Pueden declarar constructores, pero
deben utilizar parámetros.
•No pueden implementar la herencia.
•Puede implementar interfaces.
13. (Slide de Apoyo) LINQ
var pasajerosNacionales =
from p in passengers
where p.Citizenship == “ES"
select new {p.Id, p.Name};
var pasajerosNacionales =
passengers
.Where(p => p.Citizenship== “ES")
.Select(p => new { p.Id, p.Name});
Métodos
Extensores
Expresiones de
Consulta
Inicializadores de
Objetos
Inferencia Tipos
Variables Locales
14. - Un evento es un mensaje que envía un objeto cuando
ocurre una acción. La acción puede estar causada por la
interacción del usuario, como un clic, o por otra lógica del
programa. El objeto que provoca el evento se conoce
como remitente del evento. El objeto que captura el
evento y responde a él se denomina receptor del evento.
18. Paralelismo de tareas (Task Parallel Library)
La biblioteca TPL se basa en el concepto de una tarea, que representa una
operación asincrónica. El término paralelismo de tareas hace referencia a la
ejecución simultánea de una o varias tareas independientes. Las tareas
proporcionan dos ventajas fundamentales:
• Un uso más eficaz y más escalable de los recursos del sistema.
• En segundo plano, las tareas se ponen en la cola del elemento ThreadPool, que se ha mejorado con algoritmos que
determinan y ajustan el número de subprocesos y que ofrecen el equilibrio de carga para maximizar el rendimiento. Esto
hace que las tareas resulten relativamente ligeras y que, por tanto, pueda crearse un gran número de ellas para habilitar
un paralelismo pormenorizado.
• Un mayor control mediante programación del que se puede conseguir con un subproceso o un elemento de trabajo.
19. Tipos de métodos asíncronosBásicamente podríamos dividir los métodos asíncronos (por su definición) en dos
grupos:
· Métodos a los que podemos esperar
· Métodos a los que no podemos esperar
Los métodos a los que podemos esperar (awaitable en inglés) retornarán un objeto de
tipo Task o más normalmente Task<T>.
Los métodos a los que no podemos esperar, estarán marcados como async pero no
retornarán ningún valor (void).
Si invocamos un método al que podemos esperar sin una expresión await, el
compilador nos indicará que podríamos esperar a la terminación del método si
quisiéramos, aunque no es obligatorio. En este caso, la ejecución del resto del método
continuará sin esperar a la tarea asíncrona invocada.
Notas del editor
Las enumeraciones son una muy buena manera de definir tipos que utilizan valores constantes, es mucho mas legible y entendible el código cuando se utilizan enumeraciones en lugar de constantes.
Las declaración de un tipo enumeración se realiza mediante la palabra clave enum, seguido del nombre del tipo y dentro del cuerpo de la enumeración, irán definidos los campos de dicha enumeración, seguido de su valor
Las estructuras están pensadas para almacenar objetos ligeros, esto quiere decir, que se requiera que el tiempo de su procesamiento sea mucho menor (casi imperceptible) a un tipo complejo (como las clases).
Las estructuras son un tipo por valor y por consecuencia no utilizan ni constructores ni destructores, es decir se puede crear una estructura sin utilizar su constructor, además de que no requiere que intervenga el recolector de basura (GC).
Las estructuras son un tipo por valor y no por referencia como las clases
A diferencia de las clases, se pueden crear instancias de las estructuras sin utilizar un operador new.
Las estructuras pueden declarar constructores, pero deben utilizar parámetros.
Una estructura no puede heredar de otra estructura o clase, ni puede ser la base de una clase. Todas las estructuras heredan directamente de System.ValueType, que hereda de System.Object.
Una estructura puede implementar interfaces.
Las declaración de un tipo estructura se realiza mediante la palabra clave struct, seguido del nombre del tipo y dentro del cuerpo de la estructura, irán definidos los campos, métodos y eventos.
You may want to pre-empt comments by noting that in most cases you would use XML data structures, rather than a custom generic collection class, to represent tree data structures. However, XML data structures do not offer the specific advantages of generic collections such as type safety, no casting, and no boxing and unboxing.
If necessary, point out that implementing IEnumerable and creating enumerators is covered in more detail in the next topic.
La serialización es el proceso de convertir un objeto en una secuencia de bytes para almacenar el objeto o transmitirlo a memoria, una base de datos, o en un archivo. Su propósito principal es guardar el estado de un objeto para poder crearlo de nuevo cuando se necesita. El proceso inverso se denomina deserialización.