AGB  ·  Datenschutz  ·  Impressum  







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

Nullable VS Nullable

Ein Thema von WiPhi · begonnen am 9. Jan 2019 · letzter Beitrag vom 7. Feb 2019
Antwort Antwort
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Nullable VS Nullable

  Alt 10. Jan 2019, 12:50
Ohne beide Typen je unter die Finger bekommen zu haben, aber kann man nicht je einen record helper schreiben, der zwischen den verschiedenen Typen automatisch konvertiert bei Zuweisung?
Das wäre meine Traumlösung mittels Implict Zuweisungen, jedoch lt. Delphi Hilfe http://docwiki.embarcadero.com/RADSt...oading_(Delphi) Note: Class and record helpers do not support operator overloading.

Da bin ich schon an der Deklaration gescheitert. Spring4D hat das irgendwie hinbekommen (s. TValue Helper), jedoch kam ich noch nicht dazu mir das genauer anzuschauen. Ehrlich gesagt ist das mit den Operanden-Überladen noch ziemliches Neuland für mich.
Wie müsste das dann ungefähr aussehen?
Hm, so richtig will das nicht mit den generischen Operator für record helper.
Höchstens so ein "stumpfer" Ansatz mit Konvertierungsfunktionen scheint zu kompilieren:

Delphi-Quellcode:
unit Spring.Helper;

interface

uses
  Spring;

type

  TAureliusNullableType<T> = record

  end;

// TSpringNullable = Spring.Nullable<T>;
////
// NullableHelper<T> = record helper for TSpringNullable
// public
// class operator Implicit(const value: TAureliusNullableType<T>): Spring.Nullable<T>;
// end;

  TNullableConverter<T> = record
    class function ConvertSpring(const AureliusNullable: TAureliusNullableType<T>): Spring.Nullable<T>; static;
    class function ConvertAurelius(const SpringNullable: Spring.Nullable<T>): TAureliusNullableType<T>; static;
  end;



implementation

{ NullableHelper }

//class operator NullableHelper.Implicit(const value: TAureliusNullableType): Spring.Nullable<T>;
//begin
//end;

{ THelper<T> }

class function TNullableConverter<T>.ConvertAurelius(const SpringNullable: Spring.Nullable<T>): TAureliusNullableType<T>;
begin
  // Hausaufgabe
end;

class function TNullableConverter<T>.ConvertSpring(const AureliusNullable: TAureliusNullableType<T>): Spring.Nullable<T>;
begin
  // Hausaufgabe
end;

end.
  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 20:29 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