Delphi dcc32提示H2077赋值给';objParam';从未使用过
构建应用程序(下面的代码)时,将显示提示: H2077分配给objParam的值从未使用过 如何解决此提示?它是否适用于我的情况Delphi dcc32提示H2077赋值给';objParam';从未使用过,delphi,Delphi,构建应用程序(下面的代码)时,将显示提示: H2077分配给objParam的值从未使用过 如何解决此提示?它是否适用于我的情况 function TESPGenerateParamList.RandomizationTimeConfiguration(SRandomizationTimeNode: string; eConfigType: string): Boolean; var objParam: Param; sFirstNode : string; nStartPos,nE
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;
编译器是绝对正确的。在赋值之后,不引用变量。在所有情况下发生的下一件事是函数终止 要解析提示,请完全删除赋值语句。然后您也可以删除周围的
try
-finally
块,因为finally
部分中没有发生任何事情
但是首先假定赋值语句是处理引用对象的正确方法。如果
Param
是类类型而不是接口,则可能不是。在这种情况下,保留try
-finally
块,但将赋值替换为Param.Free
,就像您在几十个其他Delphi示例中看到的那样。然后,将初始的objParam
赋值上移两行,使其在进入第一个try
部分之前发生。是否需要释放它,而不是将其值设置为nil?如果它是类,我将编写什么代码来释放objParam使用:objParam.free;很遗憾听到这个消息,@Chetan。请发一个新问题。评论是没有好处的。