首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dcc32提示分配给'objParam‘的H2077值从未使用

dcc32提示分配给'objParam‘的H2077值从未使用
EN

Stack Overflow用户
提问于 2017-02-21 10:49:40
回答 1查看 656关注 0票数 0

在构建应用程序(下面的代码)时,将显示一个提示:

分配给H2077的objParam值从未使用过

我如何解决这个提示?它是否适用于我的情况?

代码语言:javascript
复制
function TESPGenerateParamList.RandomizationTimeConfiguration(SRandomizationTimeNode: string; eConfigType: string): Boolean;
var
  objParam: Param;
  sFirstNode : string;
  nStartPos,nEndPos : word;
begin
  try
    try
      objParam := ParamSchedulerRandomizationTime.Create;
      if eConfigType = 'SETPARAM' then
      begin
        ParamSchedulerRandomizationTime(objParam).FrameType := Set_Param;

        //TIMEOUT Node
        sFirstNode := '';
        if SearchNode(rsMinutes,SRandomizationTimeNode,sFirstNode,nStartPos,nEndPos,false) then
        begin
          ParamSchedulerRandomizationTime(objParam).SetParam(0, strtoint(trim(sFirstNode)));
        end;
      end
      else if eConfigType = 'GETPARAM' then
      begin
        ParamSchedulerRandomizationTime(objParam).FrameType := Get_Param;
        ParamSchedulerRandomizationTime(objParam).GetParam(0);
      end;
      slConfigurationList.AddObject(objParam.ClassName, objParam);
      result := true;
    except
      on E: Exception do
      begin
        LogErrorMessage('uTESPGenerateParamList-->RandomizationTimeConfiguration' + E.Message);
        result := false;
        raise;
      end;
    end;
  finally
    objParam := nil;  //(for here it give hint)
  end;
end;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-21 13:10:49

编译器是绝对正确的。在那个赋值之后,你不能引用变量。在所有情况下发生的下一件事是函数终止。

若要解决此提示,请完全删除赋值语句。然后,您也可以删除周围的try-finally块,因为finally部分没有发生任何事情。

但是,它假设赋值语句首先是处理引用对象的正确方式。如果Param是类类型而不是接口,则可能不是。在这种情况下,保留try-finally块,但是用Param.Free替换赋值,就像您在其他几十个Delphi示例中看到的那样。然后,将初始的objParam赋值向上移动两行,以便在输入第一个try部分之前进行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42365246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档