Laden...

Sinn von Properties?

Erstellt von Wax vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.781 Views
Wax Themenstarter:in
731 Beiträge seit 2006
vor 16 Jahren
Sinn von Properties?

Hallo Community,

heute wende ich mich mit einer Verständnisfrage an euch. Es geht um den Sinn und Zweck von Attributen in C#.

Ein Attribut in folgender Form z.B.:


int testInt;

public int MeinInt{

  get { return this.testInt; }
  set { this testInt = value; }

}

Es ist mir ganz klar, dass somit bei einer Zuweisung (set) vorher z.B. bestimmte Bedingungen geprüft werden können und somit eine bessere Wertzuweisung ermöglicht wird, ABER: Hierdurch hole ich mir (zumindest nach meiner Programmierart) eine globale Variable(Feld) ins Spiel und das halte ich für einen schlechten Stil.

Kurz gesagt, könnt ihr mir Gründe nennen, weswegen Attribute doch SO GUT sind? 😁

MfG
wax

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo Wax,

das ist kein Attribut (so heißen die in der allgemeinen OO Terminologie aber nicht in .NET, da sind Attribute was anderes), sondern eine Property.

Global wird durch Properties gar nichts.

Hier die ganze Wahrheit: Mal ne Verständnissfrage zu get;set;

herbivore

F
722 Beiträge seit 2005
vor 16 Jahren

sowas in der art gab es neulich schon:
Mal ne Verständnissfrage zu get;set;
das was du als Attribut bezeichnest nennt man eigentlich Property. Attribute sind Metadaten, die für Klassen oder Methoden angegeben werden können.

Wax Themenstarter:in
731 Beiträge seit 2006
vor 16 Jahren

Hi herbivore,

danke für den Link und entschuldige die Verwendung des Wortes "Attribut". =)
Properties bringen schon eine ganze Menge Vorteile mit sich, wie ich gelesen habe.
Mir wurde immer beigebracht, dass Variablen (retro-Name 😄) so lokal wie möglich und so global wie nötig sein sollten. Ich erwähne das deshalb, da auch wenn ich ein Feld als "private" deklariere, es doch noch ausserhalb jeder Methode steht und somit ja für die Klasse doch als global gilt und das bedeutet, dass jede Methode Zugriff auf dieses Feld hat.
Vielleicht sehe ich das Ganze ja auch nur durch "retro-Augen" 😁 und sehe es deswegen als Fehler bzw. schlechte Eigenschaft an, obwohl es Vorteile hat.

MfG
wax

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo Wax,

ja, so lokal wie möglich, so global wie nötig, stimmt ja auch und wird durch Properties nicht verletzt. Zum einen kennen normalerweise nicht alle Klasse alle anderen und zum anderen reden wir ja hier über Properties von einzelnen Instanzen. Schon alleine dadurch ist alles objektlokal, auch wenn es von außen gesetzt werden kann. Zu dem sind Properties ja gerade so geschützt wie man es braucht. Man kann den Setter weglassen, wenn er stört oder im Setter Wertebereichsüberprüfungen vornehmen. Also keine Sorge, alles im Lot.

herbivore

Wax Themenstarter:in
731 Beiträge seit 2006
vor 16 Jahren

Wenn Du das sagst bin ich mal fürs Erste beruhigt. Ich nutze Properties seitdem ich mit C# arbeite und sehe sie auch als echt hilfreich an, doch als ich gerade eines für ne GUI-Klasse erstellt habe und das dazugehörige Feld angelegt habe, wurde mir plötzlich ganz anders. =)
Aber die Sache mit der Objektlokalität beruhigte mich wieder.
Naja ich mach mal weiter...

MfG
wax

ps. gibt es für mich ne Möglichkeit den Titel des Beitrags noch zu ändern? Wäre für die Suchfunktion besser wenn dort Property anstelle von Attribut stehen würde...

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo Wax,

klar, gute Idee, einfach den ersten Beitrag editieren.

herbivore