AGB  ·  Datenschutz  ·  Impressum  







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

Generischer Setter mit Basistypen möglich

Ein Thema von ConstantGardener · begonnen am 2. Mär 2011 · letzter Beitrag vom 3. Mär 2011
Antwort Antwort
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
376 Beiträge
 
Delphi 10.4 Sydney
 
#1

Generischer Setter mit Basistypen möglich

  Alt 2. Mär 2011, 23:49
Delphi-Version: 2010
Hallo zusammen,

ich spiele gerade mit Generics rum und wundere mich, daß so etwas nicht funktioniert.

Delphi-Quellcode:

procedure GenericSetter<T> (var APropValue : T; const AValue : T);
begin
 if APropValue<>AValue then // nicht möglich
  begin
   APropValue:=AValue;
   FChanged:=True; // Datenbankrecord geändert ?
  end;
end;
Für komplexe Typen verstehe ich das ja noch. Hier muss ich einen TComparer definieren, aber für Basistypen?

//Edit : Fehler in Deklaration beseitigt
Andreas Schachtner

Geändert von ConstantGardener ( 3. Mär 2011 um 21:25 Uhr)
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Generischer Setter mit Basistypen möglich

  Alt 3. Mär 2011, 08:32
Daran, das 'APropValue' eigentlich 'APropertyValue' heißen müsste (oder umgekehrt) liegt es jetzt aber nicht, oder?

PS: Und an deiner Delphiversion (5!) auch nicht, oder? Ändere mal dein Profil...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
376 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Generischer Setter mit Basistypen möglich

  Alt 3. Mär 2011, 10:11
Hallo Alzaimar,

nein am PropValue liegts nicht, ich hatte das hier nur so runtergeschrieben. Konkret sieht das noch etwas anders aus. Das Problem ist aber, das die Typen nicht zuweisungskompatibel bzw. vergleichbar sind, obwohl sie vom gleichen Typ sind. Wenn ich jetzt extra Comparer für jeden Basistyp schreiben muss, hat sich der Vorteil der Generics hier ja erledigt. Oder?

Btw. Mein Profil passt. Ich sehe hier bei mir D2010. Du nicht ?
Andreas Schachtner
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

AW: Generischer Setter mit Basistypen möglich

  Alt 3. Mär 2011, 19:38
Entweder war ich heute morgen zu blind, oder ich war heute morgen zu blöd.

Da stand ne 5, großes Ehrenwort.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
376 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Generischer Setter mit Basistypen möglich

  Alt 3. Mär 2011, 19:46
@alzaimar

hatte ich zwar mal aber ich bin schon einige Zeit bei D2006 bzw. D2010 Prof.

Hat sonst keiner sachdienliche Hinweise? Ich meine es kann ja eigentlich nicht funktionieren da ich im Setter eigentlich ja nur einen Wert übergeben kann. Es wäre jedoch schick wenn man solche Sachen mit Generics deckeln könnte. Da würde man einige Zeilen Code sparen.

cu cg
Andreas Schachtner
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Generischer Setter mit Basistypen möglich

  Alt 3. Mär 2011, 19:48
Entweder war ich heute morgen zu blind, oder ich war heute morgen zu blöd.

Da stand ne 5, großes Ehrenwort.
Da steht ja auch immer noch eine 5

siehe erster Beitrag bei Delphi-Version
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
376 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Generischer Setter mit Basistypen möglich

  Alt 3. Mär 2011, 21:26
Wo?? Nein Scherz, Du hast natürlich Recht. Ich habe es korrigiert.
Andreas Schachtner
  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 14: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