我有一个类如何在运行时转换类的属性?
type
myClass = class
private
FId: Integer;
public
function GetId: Integer;
property Id: Integer read FId;
end;
现在,我要交换Id
属性getter在运行时使用的GetId
方法而不是FId
领域。我可以使用RTTI或其他方法来实现这一点吗?
我有一个类如何在运行时转换类的属性?
type
myClass = class
private
FId: Integer;
public
function GetId: Integer;
property Id: Integer read FId;
end;
现在,我要交换Id
属性getter在运行时使用的GetId
方法而不是FId
领域。我可以使用RTTI或其他方法来实现这一点吗?
您不能在运行时用getter方法替换属性阅读器字段。但你可以这样写:
type
TMyClass = class
private
FId: Integer;
function GetId: Integer;
public
property Id: Integer read GetId;
end;
implementation
function TMyClass.GetId: Integer;
begin
if IWantToReturnField then
Result := FId
else
Result := FId + SomeExtraStuff;
end;
当然,我知道,但这一个你写的并不是我想要的,但是非常感谢你的帮助 – mimakongjing
如果那个吸气者触发了一个事件,那么可能会有更多的灵活性。 –
@David,取决于你想要做什么。为一流消费者制作一个活动。 – Victoria
欢迎来到堆栈请详细解释一下,不清楚你在问什么。 –
属性Id:整数读取FId; 财产来自Fid的Id值,我想在运行时交换GetId getValue – mimakongjing
是否要在Fid中放置getid的值? –