我遭受了这次失败:
[dcc64 错误] Unit_Copy.pas(543): E2197 常量对象无法作为 var 参数传递
这是此错误的示例代码:
Type
MyClass = class
private
FLname : String;
public
...
property Lname: string read GetLname write SetLname;
end;
function Writeteststr(var newString) : Boolean;
begin
// does some sting processing ....
end;
调用代码正在使用此函数:
Writeteststr(FMyClass.Lname)
为什么我不能使用
string
参数将 string
类型的类属性传递给我的函数?
您的函数采用
var
引用作为输入,因此它需要一个实际变量来将 var
绑定到。但你的属性使用的是 getter/setter 方法,所以没有什么可以绑定的。
只需摆脱
var
:
function Writeteststr(newString: string) : Boolean;
或者,如果函数不会修改字符串,请将其更改为
const
:
function Writeteststr(const newString: string) : Boolean;