每次我分配变量而不使用它...
var
X : integer;
begin
X := 123;
end;
在编译时,有一条提示可以帮助我说:
[dcc32提示] Unit1.pas(30):H2077从未分配给“ X”的值
不幸的是,如果未使用的变量是string
,则不会发生。
var
X : string;
begin
X := 'hello';
end;
我已经在 Delphi 2007 和 Delphi XE7 中重现了相同的行为,所以我认为这是预期的行为。
为什么没有为string
变量引发H2077 hint?
答案 0 :(得分:2)
似乎托管类型在分配和未使用时不会引发提示。
除此之外,当启用优化时,也不会删除赋值,就像值类型一样。
为什么没有提出提示,现在可以进行猜测。没有正当理由不这样做。
另请参见No hint generated for assigned but unused "reference to procedure",以QP报告。