overloading conversion operators |
Top Previous Next |
New features since Delphi 7 > Operator Overloading > conversion operators
A class may be converted into another type:
class operator TMyClass.Implicit(a: TMyClass): Integer; var myint : integer; begin myint:= a.payload; Result:= myint; end;
This becomes in C# to:
public static implicit operator int (TMyClass a) { int result = 0; int myint = 0; myint = a.payload; result = myint; return result; }
If the other way round another type is converted to the class::
class operator TMyClass.Implicit(a: Integer): TMyClass; var returnrec : TMyClass; begin returnrec.payload:= a; Result:= returnrec; end;
this becomes to:
public static implicit operator TMyClass (int a) { TMyClass result = TMyClass.CreateRecord(); TMyClass returnrec = TMyClass.CreateRecord(); returnrec.payload = a; result = returnrec; return result; }
For explicit operators:
class operator TMyClass.explicit(a: TMyClass): double; var b : double; begin b:= a.payload; Result:= b; end;
->
public static explicit operator double (TMyClass a) { double result = 0.0D; double b = 0.0D; b = (double) a.payload; result = b; return result; }
class operator TOperatorClass.explicit(a: TOperatorClass): boolean; begin Result:= True; end;
->
public static explicit operator bool (TOperatorClass a) { bool result = false; result = true; return result; }
|
This page belongs to the Delphi2C# Documentation |
Delphi2C# home Content |