delphi – 类的属性和方法参数的重复标识符
发布时间:2020-12-15 09:07:35 所属栏目:大数据 来源:网络整理
导读:我将我的项目从Delphi转移到Lazarus.在一个表单中,我有一个私有方法,参数var Active:Boolean.在Delphi中没关系,但Lazarus给出错误错误:重复标识符“活动”和提示:标识符已在第641行的单元FORMS中定义,在第641行有: property Active: Boolean read FActiv
我将我的项目从Delphi转移到Lazarus.在一个表单中,我有一个私有方法,参数var Active:Boolean.在Delphi中没关系,但Lazarus给出错误错误:重复标识符“活动”和提示:标识符已在第641行的单元FORMS中定义,在第641行有:
property Active: Boolean read FActive; 更改参数名称(使用重构)并不困难,但为什么我不能对方法的属性和参数使用相同的名称? procedure Test(var Active: Boolean); 结果是一样的.即使我使用const或什么都不使用var. 解决方法
您应该能够为属性和参数使用相同的名称.它们具有不同的范围,因此最接近范围的那个(参数,应该被视为与局部变量在同一范围内)应该隐藏范围(属性)中的“更远”.在Delphi中,即使在该方法中,您仍然可以访问该属性,但是您应该将其限定为Self.Active:
procedure TForm1.Test(var Active: Boolean); var ParamActive: Boolean; FormActive: Boolean; begin ParamActive := Active; // gets the var parameter FormActive := Self.Active; // gets the property ... end; 我不知道为什么FPC将它标记为错误.它不应该. 更新 FWIW,如果你改变了 {$mode objfpc} 至 {$mode delphi} 它按预期编译,你不会收到错误.我刚试过这个. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |