我希望控制值的输出,以始终在下面 (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