AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Warum sind Klassenoperatoren nicht bissl intelligenter?
Thema durchsuchen
Ansicht
Themen-Optionen

Warum sind Klassenoperatoren nicht bissl intelligenter?

Ein Thema von himitsu · begonnen am 9. Mär 2020 · letzter Beitrag vom 10. Mär 2020
Antwort Antwort
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
491 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: strunzdoofe Klassenoperatoren?

  Alt 9. Mär 2020, 18:11
Tut mir leid, aber ich checke dein Problem gerade nicht.
Der Equal-Klassenoperator funktioniert bei mir ohne Probleme in dieser Konstellation. Egal wie herum man die Operanden schreibt. Wenn du diesen aber nicht definierst, dann ist es natürlich klar, dass hier kein Vergleich möglich ist.
Kannst du evtl nochmal kurz erläutern, was dein Problem ist?

Was wirklich nicht funktioniert, egal, ob du den Impliziten Operator überlädst, ist, wenn du versuchst, einen Wert des Typs an eine Funktion zu übergeben. Das wäre durchaus mal einen Fix Wert.

Delphi-Quellcode:
procedure Poop(Arg: Integer);
begin
  //...
end;

begin
  Poop(List[0]); // Jeht nüscht
end.
Dennis
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#2

AW: strunzdoofe Klassenoperatoren?

  Alt 9. Mär 2020, 18:43
JA, WENN man diesen Operator einbaut.
Aber stell dir mal vor das wäre Intelligent und würde den ImplicitCast benutzen.

Und wierum hat einen großen Einfluss auf die Qualität des Vergleichs. (siehe TTest2)
In meinem Fall kann dieses Verhalten sogar einen Fehler erzeugen, wenn sich der Record nicht in einen Integer casten lässt.

Zitat:
Poop(List[0]);
Geht doch, denn hier wird natürlich der ImplicitCast verwendet.


Das hier ist noch ein einfaches Beispiel gewesen, welches ich als Test erstellt hatte.
Der originale Record, wo ich es verwenden wollte, würde jetzt bestimmt nochmal locker 100 weitere Operatoren benötigen, wenn ich dafür alle möglichen Konstellation in allen Richtungen reinmachen müsste.
Stattdessen bleibt mir wohl eher alles wegzuwerfen und eine weniger schöne Syntax zu verwenden, anstatt die paar Konvertierungen nur in den Record zu packen.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 9. Mär 2020 um 18:58 Uhr)
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
491 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: strunzdoofe Klassenoperatoren?

  Alt 10. Mär 2020, 03:57
Ups, ja, das geht tatsächlich.

Aber es funktioniert nicht in jeder Konstellation. Bin ganz früher über das hier selbst gestolpert, als ich die Operatoren ausprobiert habe...

https://stackoverflow.com/questions/...hod-parameters

Das funktioniert nämlich nicht...
Dennis
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: strunzdoofe Klassenoperatoren?

  Alt 10. Mär 2020, 04:56
Bitte gib Deinem Thema einen aussagekräftigen Titel ...
Daniel R. Wolf
mit Grüßen aus Hamburg
  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 16:13 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