【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;

プログラムを記述するときに型を意識することで、自然にバグの少ないプログラムを記述できるというわけです。

コメント

このブログの人気の投稿

【KotlinとJava】分解宣言

wxPythonでのモーダルダイアログ作成