>>-.---.-.----.-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