Rutas
/
C#
C#
/
Ejercicios
/
The Weather in Deather
The Weather in Deather

The Weather in Deather

Ejercicio de aprendizaje

Introducción

Miembros con cuerpo de expresión

Muchos tipos de miembros de estructuras y clases (los campos son la principal excepción) pueden usar la sintaxis de miembro con cuerpo de expresión. Definir un miembro con una expresión suele producir código más conciso y legible que los bloques o las instrucciones tradicionales.

Los métodos y las propiedades de solo lectura se encuentran entre los miembros que se pueden definir con cuerpos de expresión.

public int Times3(int input) => input * 3;

public int Interesting => 1729;

Expresiones switch

Una expresión switch puede hacer coincidir un valor con uno de los casos de un conjunto de patrones y devolver el valor asociado o llevar a cabo la acción asociada. La asociación se indica con el símbolo =>. Además, cada patrón puede tener una guarda de caso opcional introducida con la palabra clave when. La expresión de la guarda de caso debe evaluarse como verdadera para que se seleccione esa «rama» del switch. Los casos (también conocidos como ramas del switch) se evalúan en el orden en que están escritos y, en cuanto se encuentra una coincidencia, el proceso se interrumpe y se devuelve el valor asociado.

double xx = 42d;

string interesting = xx switch
{
    0 => "I suppose zero is interesting",
    3.14 when DateTime.Now.Day == 14 && DateTime.Now.Month == 3 => "Mmm pie!",
    3.14 => "π",
    42 => "a bit of a cliché",
    1729 => "only if you are a pure mathematician",
    _ => "not interesting"
};

// => interesting == "a bit of a cliché"

Condicional ternario

Los operadores ternarios permiten definir condiciones if en expresiones en lugar de en bloques de instrucciones. Esto se asemeja a los enfoques de la programación funcional y a menudo puede hacer que el código sea más expresivo y menos propenso a errores.

El operador ternario combina tres expresiones: una condición seguida de una expresión que se evalúa y se devuelve si la condición es verdadera (la parte if, introducida por ?) y una expresión que se evalúa y se devuelve si la condición es falsa (la parte else, introducida por :).

int a = 3, b = 4;
int max = a > b ? a : b;
// => 4

Expresiones throw

Las expresiones throw son una alternativa a las instrucciones throw y, en particular, pueden aumentar la potencia de las expresiones ternarias y de otras expresiones compuestas.

string trimmed = str == null ? throw new ArgumentException() : str.Trim();

Instrucciones

Te han pedido que mejores código heredado relacionado con una estación meteorológica.

La estación meteorológica acepta lecturas y muestra algunos indicadores, como la temperatura y la presión.

1. Mejora la concisión y la legibilidad de los métodos apropiados

Refactoriza los métodos de la clase WeatherStation que corresponda usando miembros con cuerpo de expresión. Usa operaciones ternarias y expresiones switch cuando sea apropiado para mejorar la expresividad y, posiblemente, reducir errores.

Asegúrate de que todos los tests sigan pasando.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva
C# Exercism

¿Listo para empezar The Weather in Deather?

Regístrate en Exercism para aprender y dominar C# con 62 conceptos178 ejercicios y mentoría humana real, todo gratis.