Một bổ sung mạnh mẽ cho Delphi, generics đã được giới thiệu trong Delphi 2009 như là một tính năng ngôn ngữ mới. Generics hoặc kiểu chung (còn được gọi là kiểu được tham số hóa ) cho phép bạn xác định các lớp không xác định cụ thể kiểu của thành viên dữ liệu nhất định.
Ví dụ, thay vì sử dụng loại TObjectList để có danh sách bất kỳ loại đối tượng nào, từ Delphi 2009, Generics. Đơn vị bộ sưu tập xác định một TObjectList với các loại mạnh hơn.
Dưới đây là danh sách các bài viết giải thích các loại chung trong Delphi với các ví dụ sử dụng:
Cái gì và tại sao và như thế nào trong thuốc generic ở Delphi
Generics với Delphi 2009 Win32
Generics đôi khi được gọi là tham số chung, một cái tên cho phép chúng được trình bày tốt hơn một chút. Không giống như tham số chức năng (đối số), có giá trị, tham số chung là một loại. Và nó tham số hóa một lớp, một giao diện, một sổ đăng ký hoặc ít thường xuyên hơn là một phương thức… Cùng với, như một phần thưởng, các quy trình ẩn danh và các tham chiếu quy trình.
Hướng dẫn Delphi Generics
Delphi’s tList, tStringList, tObjectlist hoặc tCollection có thể được sử dụng để xây dựng các thùng chứa chuyên dụng, nhưng yêu cầu phải đánh máy. Với Generics, tránh được việc ép kiểu và trình biên dịch có thể phát hiện lỗi loại sớm hơn.
Sử dụng thuốc generic trong Delphi
Khi bạn đã viết một lớp bằng cách sử dụng các tham số loại chung (chung), bạn có thể sử dụng lớp đó với bất kỳ loại nào và loại bạn chọn sử dụng với bất kỳ cách sử dụng cụ thể nào của lớp đó sẽ ghi đè các loại chung mà bạn đã sử dụng khi tạo lớp.
Giao diện chung trong Delphi
Hầu hết các ví dụ mà tôi đã thấy về Generics trong Delphi đều sử dụng các lớp có chứa một loại chung. Tuy nhiên, trong khi thực hiện một dự án cá nhân, tôi quyết định rằng tôi muốn có một giao diện chứa một loại chung.
Ví dụ về kiểu chung đơn giản
Đây là cách định nghĩa một lớp chung đơn giản:
gõ
TGenericContainer<T> = giá trị lớp
: T;
kết thúc ;
Với định nghĩa sau đây, đây là cách sử dụng vùng chứa chung cho số nguyên và chuỗi:
var
genericInt: TGenericContainer<số nguyên>;
genericStr : TGenericContainer<chuỗi>;
bắt đầu
genericInt := TGenericContainer<số nguyên>.Tạo;
genericInt.Value := 2009; //chỉ số nguyên
genericInt.Free;
genericStr := TGenericContainer<string>.Create;
genericStr.Value := ‘Delphi Generics’; //chỉ chuỗi
genericStr.Free;
kết thúc ;
Ví dụ trên chỉ sơ lược về việc sử dụng Generics trong Delphi (tuy nhiên, nó không giải thích bất cứ điều gì, nhưng các bài viết trước có mọi thứ bạn muốn biết!).
Đối với tôi, thuốc generic là lý do để chuyển từ Delphi 7/2007 sang Delphi 2009 (và sau đó).