Frage von JacksMuller, 22

C# Ist diese Übersetzung zur Property richtig?

Hallo liebe Community,

1. Ist die folgende Übersetzung in Property richtig?

Zum übersetzende Aufgabe:

privat string Titel;
public DateTime getDatum()
{ return Datum; }

A: Ist diese Übersetzung richtig?

    public DateTime Datum {

    get { return Datum; }
    set {Datum = value; }
    }

B:

public DateTime Datum {
    get { return Datum; }
    set {Datum = value; }
    }
            
    privat string Titel;
    public string _Titel {
            get { return _Titel; }
            set { _Titel = value; }
        }
    
  1. Welchen Vorteil hat eine Property gegenüber der getDatum-Methode?

Vielen Dank im Voraus! :)

Antwort
von CrystalixXx, 7

Die Übersetzung ist nicht ganz richtig (bei B hast du es mit "Titel" richtig gemacht). Eine Property gibt typischerweise Zugriff auf den Wert einer private deklarierten Variablen und würde in dem Fall so aussehen:

private DateTime _Datum;
public DateTime Datum {
get { return _Datum; }
set { _Datum = value; }
}

Der kleine aber feine Unterschied zwischen Eigenschaften und Methoden liegt in der zu erwartenden Verhaltensweise. Methoden stehen für Aktionen, Eigenschaften für Daten. Dadurch hat eine Eigenschaft einen gewaltigen Vorteil, wenn man mit Datenbindung arbeitet. Dadurch wird vieles automatisiert.

Weiterhin gibt es entsprechende Richtlinien, die dem Programmierer helfen sollen zu entscheiden, wann eine Eigenschaft und wann eine Methode sinnvoll ist. Zum Beispiel würde man zu einer Methode greifen, wenn eine Konvertierung von Daten erfolgt, die Ausführung zum Ermitteln des gewünschten Wertes längere Zeit in Anspruch nimmt (z.B. durch Datenbankabfragen) oder eine definierte Reihenfolge der Ausführung wichtig ist. Da gibt es aber noch mehr.

Aber hey, intern ist eine Eigenschaft nichts anderes als eine set- und/oder get-Methode ; )

Antwort
von Mikkey, 10

Entweder

public DateTime Datum {get;set;}

oder

private DateTime datum;

public DateTime Datum

{ get { return datum; }

set { datum = value;}}

Der Vorteil ist, dass die Codierrichtlinien von C# eingehalten werden und dass die Property als solche erkennbar ist. Man würde die get...-Methode verwenden, wenn Aktionen innerhalb durchgeführt werden.


Keine passende Antwort gefunden?

Fragen Sie die Community