为什么 "H2077 value assigned to X never used" 不会出现在字符串变量中?
Why does "H2077 value assigned to X never used" not occour with string variables?
每次我分配一个变量而不使用它...
var
X : integer;
begin
X := 123;
end;
在编译时,提示来帮助我说:
[dcc32 Hint] Unit1.pas(30): H2077 Value assigned to 'X' never used
不幸的是,如果未使用的变量是 string
.
,则不会发生这种情况
var
X : string;
begin
X := 'hello';
end;
我在 Delphi 2007 和 Delphi XE7 上重现了相同的行为,所以我认为是预期的行为。
为什么 string
变量没有引发 H2077 hint?
似乎托管类型在分配和未使用时不会引发提示。
除此之外,当优化开启时,赋值也不会被删除,就像值类型一样。
为什么没有提出提示,有待推测。他们没有理由不这样做。
另请参阅 No hint generated for assigned but unused "reference to procedure",在 QP 中报告。
每次我分配一个变量而不使用它...
var
X : integer;
begin
X := 123;
end;
在编译时,提示来帮助我说:
[dcc32 Hint] Unit1.pas(30): H2077 Value assigned to 'X' never used
不幸的是,如果未使用的变量是 string
.
var
X : string;
begin
X := 'hello';
end;
我在 Delphi 2007 和 Delphi XE7 上重现了相同的行为,所以我认为是预期的行为。
为什么 string
变量没有引发 H2077 hint?
似乎托管类型在分配和未使用时不会引发提示。
除此之外,当优化开启时,赋值也不会被删除,就像值类型一样。
为什么没有提出提示,有待推测。他们没有理由不这样做。
另请参阅 No hint generated for assigned but unused "reference to procedure",在 QP 中报告。