ET12DE1Computacion / Fulbo12

Proyecto interno para simulador de Futbol
0 stars 10 forks source link

Formación #15

Closed LucasMedina04 closed 2 years ago

LucasMedina04 commented 2 years ago

Agregado: -Formación QuimicaJugadores -Linea CantidadJugadores QuimicaJugadores -PosicionEnCancha QuimicaJugador

LucasMedina04 commented 2 years ago

Ya modifique lo que me dijo y unas cositas más, no si es que hay alguna forma de "Actualizar" un Pull Request así que se lo comento por aca.

LucasMedina04 commented 2 years ago

Ya agregué una propiedad Linea.CantidadPosiciones a usar en Formacion. Simplifique Linea.QuimicaJugadores, Linea.CantidadJugadores y Formacion.QuimicaJugadores.

LucasMedina04 commented 2 years ago

@luchoxx87 Tengo que preguntar. ¿El código que modificó no dará errores? Me refiero a que se verificara si NumeroCamiseta que puede ser null es igual a numeroCamiseta que no puede ser null. ¿O el código se detendrá al verificar que NumeroCamiseta es null?

luchoxx87 commented 2 years ago

@luchoxx87 Tengo que preguntar. ¿El código que modificó no dará errores? Me refiero a que se verificara si NumeroCamiseta que puede ser null es igual a numeroCamiseta que no puede ser null. ¿O el código se detendrá al verificar que NumeroCamiseta es null?

Buenas @LucasMedina04, en la expresión

public bool EsNumero(byte numeroCamiseta)
    => NumeroCamiseta.HasValue && NumeroCamiseta == numeroCamiseta;

la propiedad HasValue, evaluá si la variable posee o no un valor (es decir, devuelve bool) y como se evalúa primero de izquierda a derecha, veamos 3 escenarios:

  1. No tiene numero de camiseta: en este caso, NumeroCamiseta.HasValue devuelve false y como esta en una conjunción, el compilador ni se molesta en verificar la segunda condición y devuelve falso.
  2. Camiseta con valor x y pregunto si es y: NumeroCamiseta.HasValue devuelve true (porque si tiene un valor) y como la segunda condición da false (x es distinto de y), toda la expresión devuelve false.
  3. Camiseta con valor x y pregunto si es x: NumeroCamiseta.HasValue devuelve true (porque si tiene un valor) y como la segunda condición da true (x es igual a x), toda la expresión devuelve true.

El truco esta en saber el orden de evaluación (si las condiciones estuviera al revés, ahí si se podría romper).

LucasMedina04 commented 2 years ago

Dudas despejadas, esto me servirá en el futuro. Gracias!!