![]() |
Propertyzugriff innerhalb einer Klasse
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:
Ich könnte ja statt FRowCount auch auf die Property RowCount zugreifen. Gibt es irgendwelche Unterschiede oder ist das Käse Wurst?
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 bin mir nicht sicher, aber ich meine gelesen zu haben (kennt man ja :mrgreen: ), dass man die privaten Felder bevorzugen sollte. |
Re: Propertyzugriff innerhalb einer Klasse
Bei einem direktem Zugriff wird eben nicht der Getter bzw. Setter aufgerufen.
|
Re: Propertyzugriff innerhalb einer Klasse
Das hieße, dass es in obigem Beispiel keinen Unterschied macht, da kein Getter bzw. Setter vorhanden ist?
|
Re: Propertyzugriff innerhalb einer Klasse
Richtig.
|
Re: Propertyzugriff innerhalb einer Klasse
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.
|
Re: Propertyzugriff innerhalb einer Klasse
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.
|
Re: Propertyzugriff innerhalb einer Klasse
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz