Delphi,有可能具有同名的属性和功能吗?

时间:2010-12-18 23:40:52

标签: delphi

考虑这段代码

type
  TMyObject=class
  private
    FName: Integer;
    function Name: Integer;
  public
    property Name : Integer read FName;
    function Name(Param1 : integer) : Integer; overload;
  end;

是否可以在delphi中创建一个具有相同名称的属性和函数(或过程)?

是否存在允许创建类似的类的任何指令或编译器开关?

5 个答案:

答案 0 :(得分:5)

不,不是。此外,没有指令或编译器开关允许这样做。

答案 1 :(得分:1)

答案在您尝试此操作时收到的错误消息中...您确实尝试过了吗?

答案 2 :(得分:0)

因为我看到overload关键字。我怀疑你可能默认的是参数

如果您使用

function Name(Param1: Integer = SOME_VALUE): Integer;

可以将其称为:=Name:=Name(5)

答案 3 :(得分:0)

偶然地,我发现有一个类具有与父类中的函数同名的属性(反之亦然)。

但是,我会避免这种情况,因为它会让你感到困惑。特别是如果功能和属性有不同的含义!

答案 4 :(得分:0)

目前,编译器无法做你想做的事 从理论上讲,编译器的未来版本可以:

方法的签名(重载与否)由名称和参数类型组成 对于索引属性的签名也是如此 由于属性和方法的签名空间是部分链接的(因此编译器错误消息),因此可以扩展组合空间以包括属性重载。

当然,由于向后兼容,该扩展可能适得其反。

- 的Jeroen