接口和属性

时间:2009-08-11 13:12:58

标签: delphi interface properties

是否可以在接口中声明属性而不为其声明get-和set-methods?类似的东西:

IValue = interface
  property value: double;
end;

我想声明实现者应该有一个名为value的属性,返回一个double,但我真的不在乎它是否返回私有字段或函数的结果。

如果可能,是否可以将其声明为读/写或只读?

2 个答案:

答案 0 :(得分:33)

没有。接口实现为函数表(基本上是一个简单的虚方法表),编译器需要知道有一个函数将属性映射到。您可以在接口上声明属性,但它必须具有getter / setter值而不是字段的函数。但是,您可以将其设置为只读或只写。

答案 1 :(得分:7)

在界面中使用属性时,请将该属性视为读取器/写入器的快捷方式。只需要一个来满足捷径...否则它不会指向任何东西。