AGB  ·  Datenschutz  ·  Impressum  







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

Cast von Nullable<> (Spring4D) nach Variant

Ein Thema von Der schöne Günther · begonnen am 10. Sep 2014 · letzter Beitrag vom 10. Sep 2014
 
Der schöne Günther

Registriert seit: 6. Mär 2013
6.190 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Cast von Nullable<> (Spring4D) nach Variant

  Alt 10. Sep 2014, 14:14
Ich habe mich vor den Delphi-Variants immer gedrückt und weiß wenig darüber. Hier, was ich glaube:

System.Variants.Null() liefert ein Variant, das bei seinen Casts immer "Null" zurückgibt. Auf eine Zahl ist es 0 , auf einen String ist es ein leerer String, auf eine Referenz ist es Nil usw.

Dementgegen steht System.Variants.Unassigned() : Das liefert einen Variant, der nichts ist. Man kann ihn nirgendwo hin casten, es steckt nichts drin.

Richtig soweit? Wenn ja wundert es mich, warum ein leeresSpring4D-Nullable<> (also mit nichts drin) beim Cast auf ein Variant Null() zurückgibt und nicht Unassigned() .

Welchen Grund hat das? Hier noch einmal der aktuelle Sourcecode in Spring:
Delphi-Quellcode:
class operator Nullable<T>.Implicit(const value: Nullable<T>): Variant;
var
  v: TValue;
begin
  if value.HasValue then
  begin
    v := TValue.From<T>(value.Value);
    if v.IsType<Boolean> then
      Result := v.AsBoolean
    else
      Result := v.AsVariant;
  end
  else
    Result := Null; // Warum?
end;
  Mit Zitat antworten Zitat
 

 

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 23:26 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 by Thomas Breitkreuz