Khi sử dụng Delphi: Nếu tôi có một đơn vị đó được lấp đầy với các hằng số như ...Thêm một đơn vị để giao diện sử dụng khoản chứ không phải là việc thực hiện sử dụng khoản
Unit AConsts;
Interface
Const
Const1 : WideString = 'Const1';
Const2 : WideString = 'Const2';
Const3 : WideString = 'Const3';
Const4 = 100;
Const5 = 100;
Implementation
end.
và tôi muốn sử dụng đơn vị này từ đơn vị khác, là có bất kỳ sự khác biệt giữa ...
Unit AUnit;
Interface
Uses
AConsts;
Implementation
end.
và
Unit AUnit;
Interface
Implementation
Uses
AConsts;
end.
? Hay nói cách khác, liệu có sự khác biệt nào giữa hai ứng dụng được biên dịch không?
[Chỉnh sửa 1]
Cảm ơn câu trả lời cho đến nay.
Tôi không đặt câu hỏi này đủ rõ ràng và tôi xin lỗi. Câu hỏi không phải là về phạm vi, tránh tham chiếu vòng tròn vv. Đó là về sự khác biệt trong ứng dụng được biên dịch. Có thể một ví dụ khác sẽ giúp ích cho bạn.
Nếu UnitA, UnitB và UnitC đều sử dụng AConsts, sẽ có sự khác biệt trong ứng dụng được biên dịch (giả sử không có xung đột tên giữa các hằng số trong các đơn vị AConsts và mã khác) giữa App1 nơi tất cả UnitA, UnitB và UnitC đều có AConsts trong điều khoản sử dụng của phần Giao diện và App2 trong đó UnitA, UnitB và UnitC đều có các AConst trong điều khoản sử dụng của mục Thực hiện.
có lẽ tôi là một chút tuổi học nhưng tôi nghĩ rằng trong giao diện, bạn nên sử dụng chỉ các đơn vị bạn cần cho các khai báo của bạn sẽ có sẵn bên ngoài đơn vị, do đó có trong giao diện. Bạn nên đặt tất cả phần còn lại vào triển khai. AFAIK, trong thời cổ đại, điều này đã giúp tốc độ biên dịch và kích thước exe kết quả, tho các phiên bản gần đây xử lý tốt hơn. Tuy nhiên, nó vẫn là một cách gọn gàng. –