型指定子は、クラス、インターフェイス、列挙などの型の宣言です。
predefined-type-specifier
例
- あらかじめ定義された型
-
01 dAmount decimal.
01 asNames string occurs 5.
01 abFigures binary-long occurs any.
- TYPE キーワード
-
01 objMyType type MyType.
01 objDateTime type DateTime. *> .NET COBOL
01 objDateTime type java.util.Date. *> JVM COBOL
詳細は次のとおりです。
- objMyType は、MyType 型のオブジェクトとして定義されます。
- objDataTime は、.NET COBOL のオブジェクト型 DateTime、または JVM COBOL の java.util.Date として定義されます。
長い型の名前
省略名だけを入力すれば済むように長いクラス名を表すネームスペースを定義するには、ILUSING 指令を使用します。
.NET 型と互換性のある型
あらかじめ定義されている COBOL データ型、およびユーザーが定義するその他の .NET COBOL 型はすべて、対応するネイティブ マネージ型 (.NET または JVM) にマップされますが、次のルールに従う必要があります。マネージ型のルールは次のようになります。
- 01 (または 77) レベルで宣言する必要がある。
- REDEFINES または RENAMES は使用できない。
- 部分参照の対象であってはならない。
- ADDRESS OF 句の対象であってはならない。
- OCCURS 句の書き方 3 を使用して配列を宣言できる。
COBOL データ項目がこれらのルールに従わない場合や他の項類である場合、その項目はマネージ型 (.NET または JVM) と見なされず、内部マネージ バイト配列内でコンパイラによって割り当てられます。COBOL ポインター データ項目は、必ずこのいずれかのバイト配列を示します。
汎用型
.NET COBOL で TYPE 定数構文を使用して汎用型を参照するには、角かっこ ([ ]) 内に汎用パラメーターを列挙します。次の例では、myNames を Dictionary 型 (.NET COBOL の場合) または HashMap 型 (JVM COBOL の場合) の項目として定義し、汎用パラメーターはいずれも string (.NET COBOL の場合は System.String、JVM COBOL の場合は java.lang.String) として設定しています。
myNames type System.Collections.Generic.Dictionary[string, string]. *> .NET COBOL
myNames type java.util.HashMap[string, string]. *> JVM COBOL
null 許容型
キーワード NULLABLE は、null 許容型を定義するために使用します。値型でのみ使用できます。