AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Propertyzugriff innerhalb einer Klasse

Ein Thema von Die Muhkuh · begonnen am 16. Mär 2008 · letzter Beitrag vom 17. Mär 2008
Antwort Antwort
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#1

Propertyzugriff innerhalb einer Klasse

  Alt 16. Mär 2008, 23:39
Hi,

spielt es eine Rolle, ob ich innerhalb meiner Klasse auf eine Property zugreife oder sollte ich direkt auf die private Variable zugreifen?

Delphi-Quellcode:
  TRobiWorkField = class(TGraphicControl)
  private
    FRowCount: Integer;
    FTileSize: Integer;
    FColCount: Integer;
  public
    procedure Init(aRows, aCols, aTileSize: Integer);

    property TileSize: Integer read FTileSize;
    property RowCount: Integer read FRowCount;
    property ColCount: Integer read FColCount;
  end;

procedure TWorkField.Init(aRows, aCols, aTileSize: Integer);
begin
  FRowCount := aRows;
  FColCount := aCols;
  FTileSize := aTileSize;

  // Um die nächsten zwei Zeilen geht es
  Height := FRowCount * FTileSize;
  Width := FColCount * FTileSize;
end;
Ich könnte ja statt FRowCount auch auf die Property RowCount zugreifen. Gibt es irgendwelche Unterschiede oder ist das Käse Wurst?

Ich bin mir nicht sicher, aber ich meine gelesen zu haben (kennt man ja ), dass man die privaten Felder bevorzugen sollte.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Propertyzugriff innerhalb einer Klasse

  Alt 16. Mär 2008, 23:43
Bei einem direktem Zugriff wird eben nicht der Getter bzw. Setter aufgerufen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Propertyzugriff innerhalb einer Klasse

  Alt 16. Mär 2008, 23:45
Das hieße, dass es in obigem Beispiel keinen Unterschied macht, da kein Getter bzw. Setter vorhanden ist?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Propertyzugriff innerhalb einer Klasse

  Alt 16. Mär 2008, 23:51
Richtig.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: Propertyzugriff innerhalb einer Klasse

  Alt 16. Mär 2008, 23:54
Da du innerhalb des Objectes auf die Property zugreift würde ich die private Variable setzen, aber das ist mehr eine Sache des Stils wie ich finde.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Propertyzugriff innerhalb einer Klasse

  Alt 17. Mär 2008, 00:00
Ich würde über die Properties gehen und noch Getter und Setter hinzufügen, auch wenn diese nichts machen. aber eventuell will man ja im Setter noch eine Validierung ausführen oder ein Ereignis aufrufen. Funktioniert von aussen dann ach wunderbar, man sucht sich aber dann dumm und dusselig, warum es aus der Klasse selber heraus nicht klappt, weil man dort direkt auf die Attribute zugreift.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#7

Re: Propertyzugriff innerhalb einer Klasse

  Alt 17. Mär 2008, 01:52
Zitat von Luckie:
Ich würde über die Properties gehen und noch Getter und Setter hinzufügen, auch wenn diese nichts machen. aber eventuell will man ja im Setter noch eine Validierung ausführen oder ein Ereignis aufrufen. Funktioniert von aussen dann ach wunderbar, man sucht sich aber dann dumm und dusselig, warum es aus der Klasse selber heraus nicht klappt, weil man dort direkt auf die Attribute zugreift.
(Das ist jetzt .NET, aber egal) Für solche Fälle - Daten, die ich selbst nur über Properties benutzen will - habe ich mir angewöhnt, die Felder zu markieren und die Properties dafür entsprechend ebenfalls. Wenn ich nun aus einer Methode heraus auf das Feld zugreife, schlägt mein Validator Alarm und zeigt mir, wo ich was falsch gemacht hab Ist bisweilen ganz nützlich.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz