delphi - 为什么仅在将重载过程分配给局部变量后才使用“H2219 Private symbol X declared but never used”?
问题描述
我仅在将私有方法分配给局部变量后才使用它:
TMyTestWithoutParam = procedure() of object;
TMyTestIntegerParam = procedure(APar : integer) of object;
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
procedure Test(); overload;
procedure Test(APar : integer); overload;
end;
...
procedure TForm1.FormCreate(Sender: TObject);
var
TmpA : TMyTestWithoutParam;
TmpB : TMyTestIntegerParam;
begin
TmpA := Test;
TmpA();
TmpB := Test;
TmpB(1);
end;
procedure TForm1.Test();
begin
//...
end;
procedure TForm1.Test(APar : Integer);
begin
//...
end;
在编译时,它会引发H2219警告消息:
[DCC 警告] Unit1.pas(16): H2219 私有符号“测试”已声明但从未使用
为什么会出现H2219警告,这是避免这种情况的正确方法?
解决方案
我已经使用Delphi XE7对其进行了测试,但无法重现该问题。我认为它已在较新的 IDE 版本中得到修复。
在Delphi 2007下,可以通过关闭/打开提示来避免警告
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{$HINTS OFF}
procedure Test(); overload;
procedure Test(APar : integer); overload;
{$HINTS ON}
end;
推荐阅读
- python - 使用 grid_mapping ValueError 保存 NetCDF
- python - 将列表中的每个元素与之前的所有连续元素进行比较
- python - 如何自动运行 SUMO 模拟 100 次(不允许用手)
- r - 列表对象中所有表的总行数并除以列?
- linux - SUID时如何通过base64二进制提升权限
- java - 为什么 Spring 不会自动运行正确的路径
- c - Telegram api在c中返回400错误请求
- excel - 将多个文件夹vba中的excel文件(同名)合并到一个电子表格中
- python - 尝试按相似属性对对象进行分组时,我得到重复的分组
- flutter - 分配给 IconButton (onPressed) 的方法在状态初始化时自动调用