Como parte de nuestro curso de C# te presentamos el siguiente código que aparece en la documentación oficial de este lenguaje de programación.
IEnumerable<string> GetEnrollees()
{
foreach (var p in People)
{
if (p is Student { Graduated: false, Name: string name }) yield return name;
}
}
El patrón Student { Graduated: false, Name: string name } verifica que la persona sea un estudiante, luego aplica el patrón constante falso a su propiedad graduado para ver si todavía está inscrito, y el nombre de cadena del patrón a su propiedad Nombre para obtener su nombre (si no es nulo). Por lo tanto, si p es un Estudiante, no se ha graduado y tiene un nombre no nulo, nos devolverá ese nombre.
El nuevo patrón alrededor de la declaración de uso permite que se agregue a una declaración de variable local. En este caso, la vida útil del uso local se extenderá hasta el final del alcance en el que se declara. Si hay más de uno que usa locales, se eliminarán en el orden inverso en el que se declaran:
{
using var foo1 = new FileStream("...");
using var foo2 = new FileStream("...");
...
// Dispose foo2
// Dispose foo1
}
Otra capacidad agregada alrededor de la declaración de uso es la noción de un patrón desechable, es decir, un tipo que tiene un método de instancia Dispose accesible. Los tipos que siguen este patrón pueden participar en una declaración de uso sin tener que implementar IDisposable:
class Bar
{
public void Dispose() { ... }
}
using (var foo = new Bar())
{
// statements
}
Otras características agregadas en C# 8.0 incluyen cambios en la sintaxis de las declaraciones de cambio y la adición de nuevas expresiones de tipo objetivo, lo que permite la omisión de declaraciones de tipo al crear nuevos objetos en contextos en los que el tipo ya se ha dado:
Vector2[] vectors = { new (1, 1), new (2, -1) };
Puedes encontrar un resumen de todas las características en futuras notas, y la propuesta de especificación completa para C# 8.0. C# 8.0 está incluido en todas las versiones de Visual Studio 2019.
Más adelante hablaremos de otras actualizaciones. Por el momento puedes ver nuestro curso de JavaScript y nuestro curso de Excel.
|