![]() |
Delphi-Version: XE
Objekte wie bei .NET
Hallo,
ich hoffe ich kann meine Frage verständlich formulieren. Es gibt bei .NET z.B. Strings,die zusätzliche Funktionen habe. Beispielsweise würde die Variable s1 vom Typ string eine Zeichenkette zurückgeben. Die Funktion s1.ToInt würde den String dann zum Beispiel den String in einen Intergerwert umwandeln und diesen dann zurückgeben. So etwas in der Art würde ich auch gerne definieren. Ich könnte natürlich ein Objekt definieren, welches (um bei obigen Beispiel zu bleiben) die Funktionen GetString und ToInt hat und dann mit string := s1.GetString und integer := s1.ToInt aufgerufen wird. Aber ich würde gerne wissen, ob das auch wie bei .NET geht. Ich scheibe mal ein wenig Phantasiecode, in der ich ein HashwertObjekt benutze.
Delphi-Quellcode:
procedure xyz;
var s1, s2: string; obj: TSHA1HashObjekt; begin obj := TSHA1HashObjekt.create; obj := '17FA58DAA075C'; if obj.valide then begin write obj; write obj.FormatierteAusgabe; end; end; obj würde dann z.B '17FA58DAA075C' zurückgeben und write obj.FormatierteAusgabe '17FA - 58DA - A075 - C' Falls das so nicht geht reicht mir auch ein einfaches "das geht so nicht". :-) Gruß Benno |
AW: Objekte wie bei .NET
Bei .Net sind alle Typen Klassen.
|
AW: Objekte wie bei .NET
Das wird nur gehen, wenn du jeden Zugriff über Methoden realisierst...
Delphi-Quellcode:
procedure xyz;
var s1, s2: string; obj: TSHA1HashObjekt; begin obj := TSHA1HashObjekt.create('17FA58DAA075C'); obj.append('17FA58DAA075C'); obj.insert('17FA58DAA075C', 3); obj.delete(1, 3); if obj.valide then begin write obj.value; write obj.FormatierteAusgabe; end; end; |
AW: Objekte wie bei .NET
@omata: Das habe ich mir schon fast gedacht. Danke.
Schade. Gruß Benno |
AW: Objekte wie bei .NET
U.U. kann man die Anforderungen mit class/record helpern nachbilden.
|
AW: Objekte wie bei .NET
Sowas würde mit records und class operator gehen. Dabei muss aber beachtet werden, dass es sich dann nicht mehr um Referenz- sondern Wertetypen handelt (beim Übergeben an Methoden oder als Rückgabe wert einer Funktion wird eine Kopie erzeugt, außer natürlich du übergibst sie dann als Pointer, wobei du dann wieder die class operator Funktionalität verlierst)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 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