Delphi 中的 System.String 是什么?

What is System.String exactly in Delphi?

我维护了一些相当古老的 Delphi 代码,在特定单元中使用 EmptyString

编译器解析为

costant EmptyString = '' - from System.string

现在我的硬盘或 .dcu 中没有 System.string.pas 文件,所以我无法了解更多相关信息。

我在

中找到
C:\Program Files (x86)\Embarcadero\Studio.0\source\rtl\sys\system.SysUtils.pas

另一个类似的常量:

{ Empty string and null string pointer. These constants are provided for
  backwards compatibility only.  }

  EmptyStr: string = '';
{$IFNDEF NEXTGEN}
  NullStr: PString = @EmptyStr;

乍一看,EmptyStrEmptyString 似乎只在过去使用过,所以它们 不知何故被弃用了 ,所以最好使用 '' 直接或在重新定义它们的应用程序中定义常量。

现在升级第 3 方组件后,我意识到 EmptyString 不再解决。

我的问题是: System.String 到底是什么?为什么rtl中没有对应的.pas文件?

我用谷歌搜索没有成功。

谢谢。

System.String is the type String officially defined in the System单位.

string 类型实际上是 System.UnicodeString 类型的别名。文档说它被定义为:

type String = UnicodeString;

反过来 UnicodeString 的文档说:

type UnicodeString = { built-in type };

没有定义类型的 Pascal 代码,因为它是 built-inintrinsic 类型。所有内置类型都被正式视为在 System 单元中声明,即使您在该单元的 Pascal 源代码中看不到它们的声明。