• 検索結果がありません。

ジェネリック

ドキュメント内 NetCOBOL for .NET 応用編 (ページ 65-68)

第3章   NetCOBOL for .NETの特徴

3.1 クラスとオブジェクトとは

3.1.5 ジェネリック

ジ ェ ネ リ ッ ク と は 、 特 定 の 型 ( ク ラ ス ) に 依 存 せ ず 、 汎 用 的 な 手 続 き を 利 用 す る た め の 仕 組 み で す 。

従 来 の オ ブ ジ ェ ク ト 指 向 プ ロ グ ラ ミ ン グ で は 、 手 続 き と そ の 手 続 き で 参 照 す る 型 を 分 離 す る こ と は で き ま せ ん で し た 。 そ の た め 、 型 に よ ら な い 確 立 さ れ た 手 続 き を 使 用 す る 場 合 、 型 毎 に 同 様 の 手 続 き を 複 数 用 意 す る 、 ま た は ど の よ う な 型 に も 適 合 す る 基 本 ク ラ スo b j e c t型 を 使 用 し た 手 続 き を 用 意 す る 、 ど ち ら か の 方 法 を と る 必 要 が あ り ま し た 。

例 え ば 、 ソ ー ト ア ル ゴ リ ズ ム を 考 え て み ま す 。 ソ ー ト 対 象 の デ ー タ が s t r i n g型 ( 文 字 列 ) の 場 合 も 、i n t型 ( 整 数 ) の 場 合 も 、 同 じ ソ ー ト ア ル ゴ リ ズ ム を 適 用 し た い 場 合 、 以 下 の よ う な イ メ ー ジ に な り ま す 。

結果 500,300,Lemon 結果

Orange,Apple,Lemon 結果

Apple,Lemon,Orange

(1)string型、int型2種類のソート手続きを用意する

string型ソート手続き int型ソート手続き

(2)object型のソート手続きを用意する

エラー!

Lemonはint型 ではない

object型ソート手続き Lemonがノーチェック

結果

Apple,Lemon,Orange

文字列 Orange,Apple,Lemon

整数 500,300,Lemon

整数 500,300,Lemon 文字列

Orange,Apple,Lemon 文字列 Orange,Apple,Lemon

文字列 Orange,Apple,Lemon

図 3 . 1 . 5   従 来 の ソ ー ト 手 続 き  

( 1 )は 、 複 数 の 同 様 な 手 続 き を 用 意 す る 必 要 が あ り 汎 用 性 に 欠 け ま す

が 、 厳 密 な 型 チ ェ ッ ク が 可 能 で す 。( 2 )は 、 手 続 き を 一 つ に す る こ と が で き ま す が 、 厳 密 な 型 チ ェ ッ ク が で き ま せ ん 。

. N E T F r a m e w o r kで は 、 こ の よ う な 場 合 に 有 効 な 機 能 と し て ジ ェ ネ リ ッ ク が 用 意 さ れ て い ま す 。 ジ ェ ネ リ ッ ク を 使 用 す る と 、 手 続 き で 参 照 す る 型 を パ ラ メ ー タ ー 化 す る こ と が で き ま す 。 型 そ の も の を パ ラ メ ー タ ー と す る た め 、 手 続 き 自 体 は 一 つ 用 意 す る だ け で か ま い ま せ ん 。 さ ら に 、 パ ラ メ ー タ ー 化 さ れ た 型 は 、 通 常 の 型 と 同 様 に 型 チ ェ ッ ク が 可 能 で す 。 先 ほ ど の ソ ー ト ア ル ゴ リ ズ ム の 例 で 見 て み る と 、 以 下 の よ う に な イ メ ー ジ に な り ま す 。

結果

Orange,Apple,Lemon 結果

Apple,Lemon,Orange

T型ソート手続き

文字列 整数

Orange,Apple,Lemon 500,300,Lemon

T型をstring型に宣言 T型をint型に宣言

エラー!

Lemonはint型 ではない

図 3 . 1 . 6   ジ ェ ネ リ ッ ク を 使 用 し た ソ ー ト 手 続 き  

パ ラ メ ー タ ー 化 し た 型 はT型 と 表 現 さ れ 、T型 を ど の よ う な 型 で 使 用 す る か を 宣 言 し ま す 。T型 を そ れ ぞ れs t r i n g型 、i n t型 と し て 宣 言 す れ ば 、T 型 ソ ー ト 手 続 き は 、s t r i n g型 ソ ー ト 手 続 き 、i n t型 ソ ー ト 手 続 き と し て 動 作 し ま す 。 そ れ ぞ れ の 型 に 合 わ せ た 型 チ ェ ッ ク も 行 わ れ ま す 。

こ の よ う に 、 ジ ェ ネ リ ッ ク を 使 用 す る と 、 型 の 概 念 を 持 っ た ま ま 汎 用 的 な 手 続 き を 利 用 す る こ と が 可 能 と な り ま す 。

ドキュメント内 NetCOBOL for .NET 応用編 (ページ 65-68)