Einzelnen Beitrag anzeigen

Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#1

was ist eine expicite Typumwandlung ?

  Alt 14. Jun 2006, 16:20
Hallo, bin gerade am testen mit den class operatoren:
Funktioniert soweit gut, aber für was braucht man eine explicite Typumwandlung und was macht man damit ?
Vielen Dank !

Delphi-Quellcode:
  IBZeit : TIBZeit;
  crlf : STring;

begin

crlf := #13#10;
IBZeit:= now;

st := IBZeit + crlf;
st := st + DateTimeToStr(IBZeit) + crlf;

showmessage(st);

Delphi-Quellcode:
//==============================================================================
type

TIBZeit = record
strict private
    Value : TDateTime; // am genauesten // unix Zeit ist ja nur bis auf eine Sekunde auflösend (Sekunden seit 1970)
public
    class operator implicit(UnixTime : Int64) : TIBZeit;
    class operator implicit(Zeit : TDateTime) : TIBZEit;

    class operator implicit(Self : TIBZeit) : String;
    class operator implicit(Self : TIBZeit) : TDateTime;

    class operator explicit(Self : TIBZeit) : String; // unklar
end;



implementation
//==============================================================================

class operator TIBZeit.implicit(UnixTime : Int64) : TIBZEIT;
begin
 result.Value := UnixToDateTime(UnixTime);
end; // implicit
//==============================================================================
class operator TIBZeit.implicit(Zeit : TDateTime) : TIBZeit;
begin
 result.value := Zeit;
end; // implicit


//==============================================================================

class operator TIBZEit.implicit(Self : TIBZeit) : String;
var formatString : STring;
begin
   formatString := 'yyyymmdd hh:nn:ss';
   result := FormatDateTime(formatString, self.value) + ' CET';
end;

//==============================================================================

class operator TIBZEit.implicit(Self : TIBZeit) : TDateTime;
begin
  result := self.Value;
end;

//==============================================================================

class operator TIBZeit.explicit(self : TIBZeit): STring;
var formatString : STring;
begin
 // für was nehm ich das ?
end;

//==============================================================================
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat