Function Calls on .NET Primitive and Enumerated Types

You can make function calls on .NET primitive and enumerated types from a PowerBuilder application. The function calls must be made inside a conditional compilation block for a .NET target.

.NET primitive types

To support function calls on .NET primitive types, the PowerBuilder .NET compiler (pb2cs) merges the functionality of these primitive types with the functionality of corresponding PowerBuilder primitive types. This allows you to use .NET primitive types and their corresponding PowerBuilder primitive types in a similar fashion. The following example makes the same ToString function call on both the .NET System.Int32 datatype and the PowerScript long datatype:
System.Int32 i1	
long i2
i1.ToString()
i2.ToString()

For a table of equivalencies between .NET and PowerScript primitive datatypes, see Datatype Mappings.

Note: The System.IntPtr and SystemUIntPtr primitive types do not have precise corresponding types in PowerBuilder—they are always treated as long datatypes. Calling functions or modifying properties on these .NET primitive types leads to a compilation error in PowerBuilder.

.NET enumerated types

Function calls are also supported on .NET enumerated types that you import to a PowerBuilder .NET target. For example, suppose you define a .NET enumerated type in a .NET assembly as follows:
Public enum TimeOfDay
{	
    Morning = 0,
    	AfterNoon,
    	Evening	
}
PowerBuilder allows you to call the ToString method on the .NET TimeOfDay enumerated type after you import it to your target:
#if defined PBDOTNET then
    ns1.ns2.TimeOfDay daytime
    daytime = ns1.ns2.TimeOfDay.Morning!
    daytime.ToString() 
#end if