Frage

Ich möchte die Ausgabe von Werten steuern, um immer unten zu sein (X) Ohne jedes Mal ein Argument anzurufen ::

Kleines Beispiel ~

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

Gibt es einen besseren Weg, dies zu tun, ohne jedes Mal Argumente zu rufen? Leider steigen die Menge und Komplexität der Zahlen an (Ich verwende 3D -Wertearrays in meinem Code) Dies wird zu einem leichten Engpass

War es hilfreich?

Lösung 2

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

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

        return Speed;
    }
    set;
    }

Ich denke, Sie können die Berechnungen aufrollen, um zu vermeiden, dass die Summierungen an mehreren Stellen wiederholt werden.

Ich empfehle, vorzeitige Optimierung zu vermeiden. Basierend auf Ihrem Beispiel scheint die Leistung ein großes Problem zu sein. Sehen Sie tatsächlich Leistungsprobleme?

Andere Tipps

Im Moment machen Sie die Ergänzung zweimal. Ich würde das tun:

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

Im Nachhinein wäre eine sauberere Version dieses Codes:

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

        return newSpeed;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top