型指定子

型指定子は、クラス、インターフェイス、列挙などの型の宣言です。

type-specifier

simple-type-specifier

simple-type-specifier

predefined-type-specifier

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 許容型を定義するために使用します。値型でのみ使用できます。