C# Установка максимальной / минимальной возврата int или float

StackOverflow https://stackoverflow.com/questions/19825669

  •  05-07-2022
  •  | 
  •  

Вопрос

Я хочу контролировать вывод значений, чтобы всегда быть ниже (X) не призывая аргумента каждый раз ::

Небольшой пример ~

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

Есть ли лучший способ сделать это, не вызывая аргументов каждый раз? К сожалению, по мере увеличения количества и сложности чисел (Я использую 3D массивы значений в своем коде) это становится легким узким местом

Это было полезно?

Решение 2

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

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

        return Speed;
    }
    set;
    }

Я думаю, что вы можете свернуть расчеты, чтобы не повторять суммирование в нескольких местах.

Я рекомендую избегать преждевременной оптимизации. Основываясь на вашем примере, это не похоже на то, что производительность будет большой проблемой. Вы действительно видите проблемы с производительностью?

Другие советы

Прямо сейчас вы делаете дополнение дважды. Я бы сделал это:

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

Оглядываясь назад, более чистая версия этого кода была бы:

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

        return newSpeed;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top