我有一个接受2个字符串参数的过程,其中一个参数有一个默认值。在程序中,我想连接一个和另一个以及一些文字以形成一个更大的字符串。不知何故,我有一个AV ...任何想法?
代码是这样的
{$WRITEABLECONST ON}
constructor MyClass.Create(s1: string; s2: string = GlobalConstant);
var s3: string;
begin
....
if (s2 = '') then s2 := GlobalConstant + ' (' + s1 + ')'; // AV here
....
end;
如果我将GlobalConstant + ' (' + s1 + ')
分配给s3
,则将s3
分配给s2
,AV会消失。为什么?直接写入字符串参数有什么问题?