Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Objekte wie bei .NET (https://www.delphipraxis.net/161228-objekte-wie-bei-net.html)

bekrause 23. Jun 2011 13:15

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

mkinzler 23. Jun 2011 13:20

AW: Objekte wie bei .NET
 
Bei .Net sind alle Typen Klassen.

omata 23. Jun 2011 13:23

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;

bekrause 23. Jun 2011 13:38

AW: Objekte wie bei .NET
 
@omata: Das habe ich mir schon fast gedacht. Danke.
Schade.

Gruß Benno

stahli 23. Jun 2011 13:59

AW: Objekte wie bei .NET
 
U.U. kann man die Anforderungen mit class/record helpern nachbilden.

Stevie 23. Jun 2011 16:10

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:55 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