我需要从对象类获取属性名称作为字符串。在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
函数直接等效的函数。
答案 0 :(得分:0)
从注释中可以清楚地看出,您正在寻找与C#nameof
函数等效的Delphi。
Delphi中不存在这样的等效项,并且该语言不具备您自己创建它的便利。相反,您将需要在代码中将该方法命名为字符串文字。