我有一个参数,它的名称与 with/do 范围内的过程相同。经过数小时的调查,我意识到了这一点,但现在我正在寻找一种比重命名参数更好的解决方案。
Procedure Test(Param:TMyTape);
begin
with TSomeClass.Create do
try
AClassFunc(Param); // << There is a Param method inside TSomeClass
finally
free;
end;
end;
里面有Param方法TSomeClass使Param参数无用。如果该Param方法的结果类型与参数相同Param,那么编译器甚至不会注意到。
Q : 是否可以参考Param参数来解决这个问题并且不需要重命名Param
另一种解决方案可能是为 TSomeClass 声明一个变量并且不使用 with/do 子句。我也不是在找这个。