Как получить имя свойства из класса экземпляра - PullRequest
0 голосов
/ 31 января 2019

Мне нужно получить имя свойства в виде строки из класса объекта.Это возможно в 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 голосов
/ 01 февраля 2019

Из комментариев вы даете понять, что ищете Delphi, эквивалентный функции C # nameof.

Нет такого эквивалента в Delphi, и язык неесть возможности для вас, чтобы создать его самостоятельно.Вместо этого вам нужно будет назвать метод как строковый литерал в коде.

...