将字符串的 object.property 作为字符串参数传递给函数

问题描述 投票:0回答:1

我遭受了这次失败:

[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
类型的类属性传递给我的函数?

delphi
1个回答
0
投票

您的函数采用

var
引用作为输入,因此它需要一个实际变量来将
var
绑定到。但你的属性使用的是 getter/setter 方法,所以没有什么可以绑定的。

只需摆脱

var

function Writeteststr(newString: string) : Boolean;

或者,如果函数不会修改字符串,请将其更改为

const

function Writeteststr(const newString: string) : Boolean;
© www.soinside.com 2019 - 2024. All rights reserved.