ILSMARTNEST

ILSMARTLINKAGE とともに使用し、連絡節項目およびエントリ ポイントを、これらが定義されるプログラム クラスのネストされたクラスとして マネージ コード (C# や Java など) に公開します。
制約事項: この指令は、.NET COBOL でのみサポートされています。

構文:

>>-.---.-.----.-ILSMARTNEST------><
   +-\-+ +-NO-+

プロパティ:

デフォルト: NOILSMARTNEST
段階: 構文チェック
$SET: 任意
IDE での相当機能: プロジェクトのプロパティで [COBOL] タブの [Expose group linkage items to .NET code] をオンにして、[Options] をクリックし、[Expose as nested classes of the program class] をオンにします。

説明:

ネストされたクラスを作成することで、同じコンパイル単位内のプログラムが同じ名前のリンケージ レコードを持つことができます。

例:

次の COBOL プログラムは、ILSMARTLINKAGE、ILSMARTNEST、ILCUTPREFIX(lnk-b-)、および ILCUTPREFIX(lnk-) でコンパイルされます。

       program-id. BookLegacy.
						 ...
       linkage section.
       01 lnk-function            pic x.
       01 lnk-b-details.
          03 lnk-b-text-details.
             05 lnk-b-title       pic x(50).
             05 lnk-b-type        pic x(20).
             05 lnk-b-author      pic x(50).
          03 lnk-b-stockno        pic x(4).
          03 lnk-b-retail         pic 99v99.
          03 lnk-b-onhand         pic 9(5).
          03 lnk-b-sold           pic 9(5).
       procedure division using by value lnk-function
                                by reference lnk-b-details.

C# では、次のように .NET COBOL で BookLegacy プログラムのデータにアクセスできます。

    BookLegacy myBook = new BookLegacy(); 
         //creates an object corresponding to the BookLegacy program
    BookLegacy.Details myDetails = new BookLegacy.Details(); 
         //creates an instance corresponding to the group lnk-b-details 
    . . .          
       myDetails.Stockno = "6666";
       myDetails.Title = ".NET COBOL";
       myDetails.Author = "Mike Focus";
       myDetails.Type = "Reference";
       myDetails.Retail = 15.50M;
       myDetails.Onhand = 20;
       myDetails.Sold = 5;
       myBook.BookLegacy("2", myDetails);
         // calls the BookLegacy method with myDetails, 
         // which corresponds to the group item lnk-b-details
詳細については、Enterprise Developer サンプルの C# WinBook デモンストレーションを参照してください。
注: ILSMARTNEST コンパイラ指令を設定してコンパイルする場合、C# のプログラムおよびフォームで BookLegacy.Details を参照するには修正が必要です。