C# ضبط الحد الأقصى / الحد الأدنى للعودة من int أو تعويم

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

هل هناك طريقة أفضل للقيام بذلك دون استدعاء الحجج في كل مرة ؟؟ للأسف مع زيادة المبلغ وتعقيد الأرقام (أنا أستخدم المصفوفات ثلاثية الأبعاد للقيم في الكود الخاص بي) هذا يصبح عنق الزجاجة خفيف

هل كانت مفيدة؟

المحلول 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