C#设置整型或浮点型的最大/最小返回值

C#设置整型或浮点型的最大/最小返回值,c#,math,accessor,C#,Math,Accessor,我希望控制值的输出始终低于(X),而无需每次调用参数: 小例子~ 有没有更好的方法来做到这一点而不必每次调用参数??可悲的是,随着数字的数量和复杂性的增加(我在代码中使用了3d值数组),这就成了一个轻瓶颈现在你要做两次加法。我会这样做: get{ var newSpeed = CurrentSpeed + CarAcceleration; if( newSpeed >= MaxSpeed){ return MaxSpeed;

我希望控制值的输出始终低于
(X)
,而无需每次调用参数:

小例子~


有没有更好的方法来做到这一点而不必每次调用参数??可悲的是,随着数字的数量和复杂性的增加(我在代码中使用了3d值数组),这就成了一个轻瓶颈

现在你要做两次加法。我会这样做:

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

现在你要做两次加法。我会这样做:

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;
}
我想你可以把计算结果汇总起来,以避免在多个地方重复求和

我建议避免过早优化。根据您的示例,性能似乎不是什么大问题。你真的看到性能问题了吗

我想你可以把计算结果汇总起来,以避免在多个地方重复求和


我建议避免过早优化。根据您的示例,性能似乎不是什么大问题。你真的看到性能问题了吗?

你是说在代码中使用
MaxSpeed
会导致速度变慢吗?作为旁注,在
if
语句中不需要
else
,因为
if
块已经包含返回。只是让代码更干净一点。您的getter for CarAcceleration中的所有代码路径都有一个对CarAcceleration的getter的调用。这行不通。很抱歉::在这里,这个例子现在应该不那么糟糕了:)用内存换取速度…为Blarg设置一个实例变量,它只计算一次。但是我很难相信加法和比较是一个瓶颈。如果你真的确信加法永远不会溢出,你可以尝试将它全部包装在
未选中的{}
块中。那可能会刮一点胡子。我讨厌在我的代码中有那种抓稻草的东西。你是说在你的代码中使用
MaxSpeed
会导致速度变慢吗?作为旁注,在
if
语句中不需要
else
,因为
if
块已经包含返回。只是让代码更干净一点。您的getter for CarAcceleration中的所有代码路径都有一个对CarAcceleration的getter的调用。这行不通。很抱歉::在这里,这个例子现在应该不那么糟糕了:)用内存换取速度…为Blarg设置一个实例变量,它只计算一次。但是我很难相信加法和比较是一个瓶颈。如果你真的确信加法永远不会溢出,你可以尝试将它全部包装在
未选中的{}
块中。那可能会刮一点胡子。不过,我讨厌在我的代码中有那种抓稻草的东西。