Pergunta

Estou procurando controlar a saída de valores para sempre estar abaixo (X) Sem chamar uma discussão todas as vezes ::

Pequeno exemplo ~

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;
    }

Existe uma maneira melhor de fazer isso sem chamar argumentos todas as vezes? Infelizmente, à medida que a quantidade e a complexidade dos números aumentam (Estou usando matrizes 3D de valores no meu código) Isso se torna um gargalo leve

Foi útil?

Solução 2

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

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

        return Speed;
    }
    set;
    }

Eu acho que você pode arrecadar os cálculos para evitar repetir as sumões em vários lugares.

Eu recomendo evitar a otimização prematura. Com base no seu exemplo, não parece que o desempenho seja um grande problema. Você está realmente vendo problemas de desempenho?

Outras dicas

No momento, você está fazendo a adição duas vezes. Eu faria isso:

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

Em retrospectiva, uma versão mais limpa deste código seria:

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

        return newSpeed;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top