1
我在我的類UserController中有一個過程,根據它的ID刪除類TUser的對象。我想要使GenericController類能夠與任何其他類做到這一點。這是我的程序:Delphi:如何在這個程序中傳遞一個對象和類作爲參數(TMS Aurelius)?
procedure TUserController.DeleteUser(User: TUser);
begin
if not FManager.IsAttached(User) then
User := FManager.Find<TUser>(User.ID);
FManager.Remove(User);
end;
我試着這樣做:
procedure TGenericController.Delete(Class_: TObject; Class_ID: Integer);
begin
if not FManager.IsAttached(Class_) then
Class_ := FManager.Find<Tclass(Class_)>(Class_ID);
FManager.Remove(Class_);
end;
但我收到此錯誤:
[dcc32 Error] GenericController.pas(36): E2531 Method 'Find' requires explicit type argument(s)
這種方法從TMS奧勒留查找:
function TObjectManager.Find<E>(IdValue: Variant): E;
begin
Result := E(Find(TClass(E), IdValue));
end;
你推薦另一種方法來做到這一點? – 2014-09-28 02:47:41
也可以使用方法'procedure TGenericController.Delete(IdValue:Variant); var LInst:E; ... LInst:= FManager.Find (IdValue); ...' –
2014-09-28 06:31:39
@SirRufo我會盡力回覆結果,謝謝。 – 2014-09-28 19:46:49