如何从实例类获取属性名称

时间:2019-01-31 12:58:50

标签: string class delphi properties get

我需要从对象类获取属性名称作为字符串。在Delphi中有可能吗?

我需要将属性传递作为方法的参数,并将属性名称作为字符串。我不想使用属性名称作为参数,因为当在类中更改属性名称时,编译器不会捕获错误。

type
  TMyClass = class
  private
    fField: some_type;
  public
    property Field:some_type read fField;
  end;

function GetPropertyName(arg: ??):string
begin
  Result := arg.PropertyName; // here I need get property name form transfer type
end;

var
  obj: TMyClass;
  name: string;
begin
  name := GetPropertyName(obj.Field);  
end;

为澄清起见,如评论中所述,我正在寻找与C#nameof函数直接等效的函数。

1 个答案:

答案 0 :(得分:0)

从注释中可以清楚地看出,您正在寻找与C#nameof函数等效的Delphi。

Delphi中不存在这样的等效项,并且该语言不具备您自己创建它的便利。相反,您将需要在代码中将该方法命名为字符串文字。