【Delphi Sample】ジェネリックスを使う
【Delphi Sample】ジェネリックスを使う
TListやTStringListにはそれぞれポインタや文字列を格納することができます。ジェネリックスを利用することで、より汎用的に、より安全に利用することができます。
上では難しく言っていますが、つまるところクラスに対して型を限定できるということです。型を限定することで、コンパイル時にエラーを発見することができるため、より安全になるというわけです。
それではジェネリックスの利用方法について見てみましょう。
以下のコードをざっと見てください。TListの後ろに<Integer>という記述を見つけられると思います。このように指定することによって、TListにはInteger型しか代入することができなくなります。
また、コンパイラがlistに入っているのは、Integer型と判断してくれるため、取り出すときに無駄なキャストを行う必要がありません。
procedure TForm1.Button1Click(Sender: TObject);
var
list: TList<Integer>;
i: Integer;
s: string;
begin
list := TList<Integer>.Create;
list.Add(100);
list.Add(100.15); // コンパイルエラー
list.Add('111'); // コンパイルエラー
i := list[0];
s := IntToStr(list[0]);
end;
プログラムを記述するときに型を意識することで、自然にバグの少ないプログラムを記述できるというわけです。
コメント
コメントを投稿