BigBastis Blog

C#: ++/– Operator auf eigene Klassen anwenden

Introduction

user

Sebastian Gross

Sebastian Gross arbeitet in Bielefeld als Softwareentwickler für .NET und Java im Bereich Web.Als Fan der .NET-Plattform lässt er sich kein Userguppen Treffen und Community Event im Raum OWL entgehen.Dabei hat er eine besondere Vorliebe für das ASP.NET MVC Framework und für das Test Driven Development (TDD) entwickelt.


LATEST POSTS

Handling too long scrollspy menus 10th June, 2015

Java: Create ZIP archive 23rd March, 2015

.NET

C#: ++/– Operator auf eigene Klassen anwenden

Posted on .

Ihr habt den ++/– (inkrement/dekrement) Operator bestimmt schon tausende Male eingesetzt ohne viel darüber nachzudenken, genau wie ich, doch heute ist mir schlagartig bewusst geworden, dass dieser Operator auch ein paar von meinen Klassen gut stehen würde und die Anwendung und die Lesbarkeit des Codes verbessern würde.

Die Umsetzung gestaltet sich hier zum Glück sehr einfach:

class Program {
    static void Main(string[] args) {

        Person a = new Person("Alf", 10);

        ++a;

        Console.WriteLine(a.ToString());    //Ausgabe: Alf - 11

        a++;

        Console.WriteLine(a.ToString());    //Ausgabe: Alf - 12

        a--;

        Console.WriteLine(a.ToString());    //Ausgabe: Alf - 11

        --a;

        Console.WriteLine(a.ToString());    //Ausgabe: Alf - 10

        Console.ReadLine();
    }
}

public class Person {
    int Alter { get; set; }
    string Name { get; set; }

    public Person(string Name, int Alter) {
        this.Alter = Alter;
        this.Name = Name;
    }

    public static Person operator ++(Person p){
        p.Alter++;
        return p;
    }

    public static Person operator --(Person p) {
        p.Alter--;
        return p;
    }

    public override string ToString(){
        return this.Name + " - " + this.Alter.ToString();
    }
}

Es muss lediglich eine statische Methode in die Klasse eingebunden werden, deren Rückgabewert ebenfalls der Klassentyp ist. Desweiteren folgt vor dem Namen der Funktion das Stichwort „operator“ und es muss auch noch ein Parameter vom Typ der Klasse übergeben werden.

Innerhalb dieser Methode können wir nun entscheiden, was passieren soll wenn der Operator benutzt wird. In meinem Fall habe ich mich dazu entschieden, das Alter der Person um eins zu erhöhen, aber der Fantasie sind hier natürlich keine Grenzen gesetzt.

Natürlich kann man auch weitere Operatoren auf diese Weise implementieren, wie zum Beispiel den +/- (Plus/Minus) Operator, dazu gibt es ein nettes Beispiel im MSDN.

Eine feine Sache wie ich finde, nicht kompliziert – kann aber helfen den Code verständlicher und einfacher zu gestalten.

profile

Sebastian Gross

http://www.bigbasti.com

Sebastian Gross arbeitet in Bielefeld als Softwareentwickler für .NET und Java im Bereich Web.Als Fan der .NET-Plattform lässt er sich kein Userguppen Treffen und Community Event im Raum OWL entgehen.Dabei hat er eine besondere Vorliebe für das ASP.NET MVC Framework und für das Test Driven Development (TDD) entwickelt.

Comments
user

Author bigbasti87

Posted at 11:00 24. November 2010.

Bloggd: C#: ++/– Operator auf eigene Klassen anwenden – http://blog.bigbasti.com/c-operator-auf-

Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

View Comments (2) ...
Navigation