我有一個類如何在運行時轉換類的屬性?
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的值? –