I have a parameter that its name is the same as a procedure within with/do scope. I realised it after hours of investigating, but now I'm looking for a solution better than just renaming my parameter.
Procedure Test(Param:TMyTape);
begin
with TSomeClass.Create do
try
AClassFunc(Param); // << There is a Param method inside TSomeClass
finally
free;
end;
end;
There is Param method inside TSomeClass that makes the Param parameter useless. If the result type of that Param method is the same as Param parameter, then compiler don't even notice.
Q: Is it possible to refer to Param parameter to resolve this issue and don't needs to rename the Param
Another solution maybe declaring a variable for TSomeClass and don't using with/do clause. I' not looking for this too.
Not if you are going to use
with.This approach will work and is how I would write the code. There are only a very narrow set of scenarios where
withis appropriate. This is not one of them.