Predefined identifier CSHARP

Top  Previous  Next

Pretranslated C# code > Preparing Delphi code > Frequent re-translation > Predefined identifier CSHARP

 

In addition the the definitions which the user can set in the translation options the identifier CSHARP always is defined in Delphi2C#. The preprocessor treats this identifier in a special manner. The pre-processor not simply writes the according code into the pre-processed code, but it puts it into the special brackets (*#_ ... _#*). In a second step the translator then removes the brackets.

 

For example:

 

{$ifdef CSHARP}

  out << s << endl;

{$else}

  WriteLn(s); 

{$endif}

 

The pre-processed code then is:

 

(*#_ out << s << endl; _#*)

 

and because of the special treatment of the brackets (*#_..._#*), the final C# output is:

 

out << s << endl;

 

Delphi2C# ignores the part of code in the {$else}-section completely, but it is visible to the Delphi compiler. So, this special manner of the conditional compilation makes it possible that both the original Delphi code and the generated C# code remain compiling.

 

The identifiers in these section either can be normalized or can be left untouched. This is controlled by the CSHARP unification option.

 

 



This page belongs to the Delphi2C# Documentation

Delphi2C# home  Content