1

在过去的几天里,我一直在 Delphi XE2 中使用 3rd 方服务,并且即将完成。我遇到了一个绝对难倒我的问题,我认为应该有非常明显的答案。我希望另一双眼睛能告诉我我的问题是什么。

我有这个界面:

IWorshipTeamEvent = Interface(IInterface)
  function GetId : integer;
  function GetName : string;
  function GetTeamId : integer;
  function GetStartDate : TDate;
  function GetEndDate : TDate;
  function GetStartTime : TTime;
  function GetEndTime : TTime;
  function GetSets : IWorshipTeamSetList;

  property Id : integer read GetId;
  property Name : string read GetName;
  property TeamId : integer read GetTeamId;
  property StartDate : TDate read GetStartDate;
  property EndDate : TDate read GetEndDate;
  property StartTime : TTime read GetStartTime;
  property EndTime : TTime read GetEndTime;
  property Sets : IWorshipTeamSetList read GetSets;
end;

然后在同一个单元的另一个类中,我试图IWorshipTeamEvent在这个函数中返回一个:

function TWorshipTeamEventList.GetEvent(index: Integer) : IWorshipTeamEvent;
begin
  //fEvents is a TInterfaceList that contains only IWorshipTeamEvents
  Result := fEvents[index] as IWorshipTeamEvent;
end;

此时,我得到了编译器错误Operator not applicable to this operand type。我已经尝试了一些东西,比如创建一个类型为的temp变量IXmlResponseType

temp := fEvents[index] as IXmlResponseType;
Result := nil;

已编译,所以我尝试temp使用一种类型进行IWorshipTeamEvent创建

temp := fEvents[index] as IWorshipTeamEvent;
Result := nil;

没有编译。

非常感谢任何建议

4

1 回答 1

2

我在另一个问题上阅读了这个答案,该问题指出缺少 GUID。为我的界面生成 GUID 后IWorshipTeamEvent,一切都按预期编译和工作。

于 2012-09-13T18:13:34.413 回答