This section lists some limitations on the code that can be enclosed in conditional compilation blocks.
Case sensitivity PowerScript is case insensitive, but C# is case sensitive. If a resource has the same name as another resource with differences only in the case of one or more characters, PowerBuilder cannot process the resource names correctly.
Calls to PowerScript from .NET functions You cannot call a .NET method inside a conditional code block if that method calls back into PowerScript functions.
Delegates are not supported A delegate is a type that safely encapsulates a method, similar to a function pointer in C and C++. You cannot use delegates in conditional code blocks.
.NET classes and interfaces cannot be used as parameters .NET classes and interfaces cannot be used as the parameters to functions and events.
Inheriting from .NET classes You cannot create user objects, windows, or window controls that inherit from .NET classes.
Implementing .NET interfaces You cannot create user objects that implement .NET interfaces.
Consuming .NET generics You cannot consume .NET generic classes or generic methods in conditional code blocks. The .NET Framework 2.0 introduced generics to act as templates that allow classes, structures, interfaces, methods, and delegates to be declared and defined with unspecified or generic type parameters instead of specific types. Several namespaces, such as System Namespace and System.Collections.Generic, provide generic classes and methods.
The System.Nullable type is a standard representation of optional values and as such it is also classified as generic and therefore cannot be consumed in PowerBuilder .NET applications.
In .NET Assembly and Web service targets, you can select a check box to map PowerBuilder standard datatypes to .NET nullable datatypes. Nullable datatypes are not Common Type System (CTS) compliant, but they can be used with .NET Generic classes if a component accepts or returns null arguments or if reference arguments are set to null.
AutoScript does not support .NET classes AutoScript works as expected for PowerBuilder objects, properties, and methods inside conditional code blocks, but it does not display for .NET classes.
DYNAMIC and POST do not support .NET methods You cannot use the DYNAMIC or POST keywords when you call a .NET method.
.NET arrays of arrays .NET arrays of arrays are supported in conditional code blocks for .NET targets only.