为什么在尝试为字符串实现 class 助手时会出现 E2029 错误?
Why do I get E2029 error when trying to implement a class helper for string?
我们想创建一个非常方便和稳定的数据类型转换,这里使用Delphi中的class helper
特性进行字符串数据类型转换。
type
TStringHelper = class helper for String
public
function AsBoolean: Boolean;
...
end;
{ TStringHelper }
function TStringHelper.AsBoolean: Boolean;
begin
Result := False;
try
Result := StrToBool(Self);
except
end;
end;
当我尝试在 Delphi XE2 中编译上述代码时,我得到:
E2029 "declaration expected but string found"
我的代码有什么问题?
对于 string
类型,您需要使用 record
助手而不是 class
助手。
type
TStringHelper = record helper for string
....
end;
请注意,基本数据类型的记录助手(例如 Integer
、double
、string
等)仅在 XE3 中引入,因此如果您使用的是旧版本运气不好。
我们想创建一个非常方便和稳定的数据类型转换,这里使用Delphi中的class helper
特性进行字符串数据类型转换。
type
TStringHelper = class helper for String
public
function AsBoolean: Boolean;
...
end;
{ TStringHelper }
function TStringHelper.AsBoolean: Boolean;
begin
Result := False;
try
Result := StrToBool(Self);
except
end;
end;
当我尝试在 Delphi XE2 中编译上述代码时,我得到:
E2029 "declaration expected but string found"
我的代码有什么问题?
对于 string
类型,您需要使用 record
助手而不是 class
助手。
type
TStringHelper = record helper for string
....
end;
请注意,基本数据类型的记录助手(例如 Integer
、double
、string
等)仅在 XE3 中引入,因此如果您使用的是旧版本运气不好。