2009-08-11 38 views
20

Có thể khai báo thuộc tính trong giao diện mà không khai báo phương thức get và set cho nó không? Một cái gì đó như:Giao diện và thuộc tính

IValue = interface 
    property value: double; 
end; 

Tôi muốn nói rằng implementor nên có một tài sản được gọi là giá trị, trả lại một đôi, nhưng tôi thực sự không quan tâm nếu nó trả về một lĩnh vực tư nhân hoặc kết quả từ một hàm.

Nếu có thể, có thể khai báo nó đọc/ghi hoặc chỉ đọc không?

+3

Điều này khiến tôi ghét delphi ..: D. –

+0

khi có quá nhiều lý do khác để lựa chọn? Trên thực tế, tôi thích Delphi khá nhiều, nhưng đó là một chương kín cho tôi bây giờ. – Vegar

Trả lời

30

Không. Giao diện được thực hiện dưới dạng bảng chức năng (về cơ bản là bảng phương thức ảo đơn giản) và trình biên dịch cần biết có một hàm để ánh xạ thuộc tính lên. Bạn có thể khai báo một thuộc tính trên một giao diện, nhưng nó phải có các hàm như các giá trị getter/setter, không phải các trường. Bạn có thể làm cho nó chỉ đọc hoặc chỉ ghi.

6

Khi làm việc với các thuộc tính trong giao diện, hãy coi thuộc tính là lối tắt cho người đọc/người viết. Chỉ có một yêu cầu để đáp ứng các phím tắt ... nếu không nó không trỏ đến bất cứ điều gì.

+4

Đúng. Trong thực tế, việc khai báo tài sản hoàn toàn có để thuận tiện cho bạn. Nếu bạn tạo một giao diện với một thuộc tính trên nó, và đặt nó vào một lớp thực hiện các hàm nhưng không khai báo thuộc tính, thì lớp đó sẽ biên dịch tốt. –

Các vấn đề liên quan