Tôi có một hoạt động nhất định trong một lớp học rất tốn kém. (trên thứ tự khoảng 8 giây để chạy hoàn toàn) Vì vậy, bây giờ tôi đã quyết định nó có lẽ nên chạy ở đầu chương trình trong một màn hình "khởi tạo". Tôi không thể tìm thấy bất cứ nơi nào trong Delphi chỉ ra rằng có một điều như một lĩnh vực tĩnh tuy nhiên.Làm thế nào để có được tương đương với một trường tĩnh (lớp) trong Delphi?
Những gì tôi về cơ bản cần làm là tải một danh sách các bản ghi và giữ chúng sống trong suốt vòng đời của chương trình. Cách tốt nhất để làm điều này trong Delphi là gì?
tôi sẽ làm điều này trong C# khá đơn giản:
class Foo{
static List<...> Bar;
}
Tuy nhiên trong Delphi, Tôi không nhìn thấy bất cứ điều gì để tạo ra một trường tĩnh. Tất cả những gì tôi thấy là từ khóa class
để tạo phương thức tĩnh
Trong Delphi hiện đại, bạn có thể sử dụng 'lớp var' để có tương đương với các trường thành viên tĩnh, nhưng trong Delphi 7 bạn cần sử dụng một biến toàn cầu. –
Phương thức 'lớp' và phương thức' tĩnh' tương tự nhau, nhưng hơi khác nhau.Các phương thức 'class' nhận lớp mà chúng được gọi là tham số ngầm, tương tự như cách các cá thể của phương thức nhận được cá thể. Các phương thức 'static' không nhận được tham số như vậy. Các phiên bản cũ của Delphi chỉ có các phương thức 'class', nhưng tôi nghĩ các phiên bản mới hơn cũng có các phương thức' static' để tăng khả năng tương thích .net. – CodesInChaos
@CodeInChaos Tôi không biết rằng [phân biệt] (http://docwiki.embarcadero.com/RADStudio/en/Methods#Class_Methods). Nó khá là bí truyền vì tương đương với tham số 'Self' của một phương thức lớp là khá dễ dàng trong phương thức' static'. Nhưng việc sử dụng 'Self' không tránh lặp lại bản thân bạn. P.S. Bạn đúng là D7 không có 'class var' và tôi định bình luận về hiệu ứng đó trong câu trả lời ban đầu của bạn nhưng chỉnh sửa thời gian gia hạn của bạn đã xóa nó! –