是否可以将保留字用于字段名称?

时间:2013-07-29 09:43:25

标签: delphi

出于兼容性原因(对象被序列化并导出并且必须与外部名称匹配)我希望字段名称为“type”,即

TTBaseWebResponse = class
private
   type: String;
   success: Integer;       
end;

or

TTBaseWebResponse = class
private
   ftype: String;
   fsuccess: Integer;       
public
   type: string read fstring write fstring;
   success: integer read fsuccess write fsuccess;   
end;

Delphi(XE2)甚至不会编译它。 这是可能吗?怎么样?

3 个答案:

答案 0 :(得分:9)

尝试使用&在字段名称之前

答案 1 :(得分:8)

这由documentation

涵盖
  

扩展标识符

     

您可能会遇到标识符(例如类中的类型或方法)   与Delphi语言保留字同名。例如,   一个类可能有一个名为begin的方法。德尔福保留这样的话   因为开始不能用于标识符名称。

     

如果您完全符合标识符,则没有问题。对于   例如,如果要使用Delphi保留字类型来表示   标识名称,您必须使用其完全限定名称:

var TMyType.type
// Using a fully qualified name avoids ambiguity with Delphi language keyword.
     

作为较短的替代方案,可以使用&符号(& )   解决标识符和Delphi语言之间的歧义   保留字。 & 可防止将关键字解析为   关键字(即保留字)。如果遇到方法或类型   与Delphi关键字同名,您可以省略命名空间   规范,如果您在标识符名称前加上&符号。但   当您声明与a具有相同名称的标识符时   关键字,必须使用&

type
  &Type = Integer; 
  // Prefix with '&' is ok.

答案 2 :(得分:6)

是的,你必须使用&在名字之前;

TTBaseWebResponse = class
private
  &type: String;
  success: Integer;       
end;