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;
乍一看,EmptyStr
和 EmptyString
似乎只在过去使用过,所以它们 不知何故被弃用了 ,所以最好使用 ''
直接或在重新定义它们的应用程序中定义常量。
现在升级第 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-in 或 intrinsic 类型。所有内置类型都被正式视为在 System
单元中声明,即使您在该单元的 Pascal 源代码中看不到它们的声明。
我维护了一些相当古老的 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;
乍一看,EmptyStr
和 EmptyString
似乎只在过去使用过,所以它们 不知何故被弃用了 ,所以最好使用 ''
直接或在重新定义它们的应用程序中定义常量。
现在升级第 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-in 或 intrinsic 类型。所有内置类型都被正式视为在 System
单元中声明,即使您在该单元的 Pascal 源代码中看不到它们的声明。