Type Mappings from Native COBOL to Managed Code

COBOL data items are exposed as the following managed types, when the code is compiled with the ILSMARTLINKAGE directive:

Native COBOL C# type Java type Managed COBOL
PIC X(n) string String string
PIC S9(n) where n <= 2 sbyte byte binary-char
PIC 9(n) where n <= 2 byte byte binary-char unsigned
Tip: You can use byte (or BYTE) as a synonym for binary-char unsigned.
PIC S9(n) where 2 < n <= 4 short short binary-short
PIC 9(n) where 2 < n <= 4 ushort short binary-short unsigned
PIC S9(n) where 4 < n <= 9 int int binary-long
PIC 9(n) where 4 < n <= 9 uint int binary-long unsigned
PIC S9(n) where 9 < n <= 19 long long binary-double
PIC 9(n) where 9 < n <= 19 ulong long binary-double unsigned
PIC 9(n)V9(m) decimal


COMP-1 float float float-short
COMP-2 double double float-long
PIC Z9 (and any numeric edited) string String string
PIC A(n) string String string
Group item string String string