Float Variable die nur erhöht werden kann, aber nicht mehr erniedrigt?

2 Antworten

Eine einfache und schnelle Möglichkeit hat regex9 vorgestellt. Mit Eigenschaften kannst du kontrollieren, wie mit einem Objekt "von außen" umgegangen werden soll, beispielsweise ob man den Wert in der Variable lesen oder schreiben darf, sowie auf welche Art und Weise.

Eine weitere Möglichkeit wäre das Einführen einer eigenen Klasse. In C# kann man nämlich eine Operatorüberladung vornehmen. Du könntest dann für deine Klasse nur den "+" einführen, aber nicht die anderen arithmetischen Operatoren, sodass man den Wert in einer Instanz dieser Klasse immer nur erhöhen könnte (ist etwas komplizierter als das, weil man dann Objekte miteinander "verrechnet"). Das führt aber an dieser Stelle meiner bescheidenen Meinung nach zu weit, gerade wenn du nicht mehr mit dieser Variable machen möchtest als diese Einschränkung, dass man den Wert in der Variable nur erhöhen darf.

Die Variable selbst darf nicht angefasst werden. Verwende ein Property.

class SomeClass
{
  private float _number;

  public float Number
  {
    get => _number;
    set
    {
      if (value > _number)
      {
        _number = value;
      }
    }
  }
}