Pregunta

Estoy buscando controlar la salida de valores para que siempre esté debajo (X) sin llamar a un argumento cada vez ::

Pequeño ejemplo ~

public int CurrentSpeed;
public int MaxSpeed;
private int caracceleration;
private int Blarg;

public int CarAcceleration{
    get{ 
        Blarg = CurrentSpeed + caracceleration;
        if(Blarg >= MaxSpeed){
            Blarg = MaxSpeed
        }

        return Blarg

    set;
    }

¿Hay una mejor manera de hacer esto sin llamar a los argumentos cada vez? Lamentablemente a medida que aumentan la cantidad y la complejidad de los números (Estoy usando matrices 3D de valores en mi código) Esto se convierte en un cuello de botella de luz

¿Fue útil?

Solución 2

public int Speed
{
  get
  {
     return CurrentSpeed + CarAcceleration;
  {
}

public int CarAcceleration{
    get
    { 
        if(Speed >= MaxSpeed)
        {
            return MaxSpeed
        }

        return Speed;
    }
    set;
    }

Supongo que puedes enrollar los cálculos para evitar repetir las sumas en varios lugares.

Recomiendo evitar la optimización prematura. Según su ejemplo, no parece que el rendimiento sea un gran problema. ¿Realmente estás viendo problemas de rendimiento?

Otros consejos

Ahora mismo estás haciendo la adición dos veces. Yo haría esto:

get{ 
        var newSpeed = CurrentSpeed + CarAcceleration;
        if( newSpeed >= MaxSpeed){
            return MaxSpeed;
        }
        else{
            return newSpeed;
        }
}

En retrospectiva, una versión más limpia de este código sería:

get{ 
        var newSpeed = CurrentSpeed + CarAcceleration;
        if( newSpeed >= MaxSpeed){
            newSpeed = MaxSpeed;
        }

        return newSpeed;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top