overloading binary operators

Top  Previous  Next

New features since Delphi 7 > Operator Overloading > binary operators


The  translation of overloaded binary operators is straightforward. This is shown in the following example:



class operator TMyClass.Add(a, b: TMyClass): TMyClass;


  returnrec : TMyrClass;


  returnrec.payload := a.payload + b.payload;

  Result:= returnrec;




becomes in C# to:



public static TOperatorClass operator + (TOperatorClass a, TOperatorClass b)


  TOperatorClass result = TOperatorClass.CreateRecord();

  TOperatorClass returnrec = TOperatorClass.CreateRecord();

  returnrec.payload = a.payload + b.payload;

  result = returnrec;

  return result;





Problematic are the operator IntDivide and LogicalXor because they don't have counterparts in C#. Delphi2C# converts IntDivide to a normal Divide operator /. As long  as there isn't an additional Divide operator this will work. There is no automatic for LogicalXor yet.




This page belongs to the Delphi2C# Documentation

Delphi2C# home  Content