参数名称与 class 成员冲突
Parameter name conflict with class member
我有一个参数,其名称与 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;
TSomeClass
中有 Param
方法使 Param
参数无用。如果 Param
方法的结果类型与 Param
参数相同,那么编译器甚至不会注意到。
Q: 是否可以参考Param
参数解决这个问题,不需要重命名Param
另一个解决方案可能是为 TSomeClass 声明一个变量并且不使用 with/do 子句。我也不找这个。
Is it possible to refer to Param parameter to resolve this issue and don't needs to rename the Param?
如果您要使用 with
,则不会。
Another solution maybe declaring a variable for TSomeClass and don't using with/do clause.
这种方法会奏效,而且我会这样编写代码。只有极少数情况下 with
是合适的。这不是其中之一。
我有一个参数,其名称与 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;
TSomeClass
中有 Param
方法使 Param
参数无用。如果 Param
方法的结果类型与 Param
参数相同,那么编译器甚至不会注意到。
Q: 是否可以参考Param
参数解决这个问题,不需要重命名Param
另一个解决方案可能是为 TSomeClass 声明一个变量并且不使用 with/do 子句。我也不找这个。
Is it possible to refer to Param parameter to resolve this issue and don't needs to rename the Param?
如果您要使用 with
,则不会。
Another solution maybe declaring a variable for TSomeClass and don't using with/do clause.
这种方法会奏效,而且我会这样编写代码。只有极少数情况下 with
是合适的。这不是其中之一。