【发布时间】:2015-11-12 09:53:30
【问题描述】:
我想让事情变得直截了当,并将默认的 string 类型声明/覆盖为宽字符串或 ansi 字符串。
例如string = WideString; Delphi 2009 下
如何以及在哪里可以声明/设置/更改默认字符串类型,因此整个项目和 IDE 保证,它已被专门覆盖?
【问题讨论】:
标签: delphi
我想让事情变得直截了当,并将默认的 string 类型声明/覆盖为宽字符串或 ansi 字符串。
例如string = WideString; Delphi 2009 下
如何以及在哪里可以声明/设置/更改默认字符串类型,因此整个项目和 IDE 保证,它已被专门覆盖?
【问题讨论】:
标签: delphi
声明/设置它的最佳位置在哪里,所以整个项目和 IDE 保证,默认字符串是明确的 声明/覆盖?
无处可去。 string是Delphi中的关键字,不能重新声明。
在 Unicode Delphi 版本中,string 是 UnicodeString 的别名,在早期版本中是 AnsiString 的别名。
WideString 与COM BSTR 类型兼容,它不像string、AnsiString 或UnicodeString 那样被引用计数
无论您使用哪个 Delphi 版本(Unicode 之前的版本,或 Unicode),都首选使用泛型 string 类型。
但是在您需要具体且代码取决于确切类型的地方使用AnsiString 或UnicodeString,即使它们可能映射到通用string,尤其是Delphi 版本。
在 pre-Unicode Delphi 中使用 AnsiString 以确保跨版本的兼容性和代码中的代码正确性,这取决于变量为 AnsiString
在 Unicode Delphi 版本中使用 UnicodeString 以在代码正确性取决于变量 UnicodeString 时验证您的代码
【讨论】:
No matter which Delphi version you - 只是吹毛求疵,但在某些 Delphi 版本中,取决于编译器选项,字符串也可能是 ShortString :-)
如果您使用 Delphi 2009 或更高版本string is defined as UnicodeString。在早期版本中,它被定义为AnsiString。
没有办法重新声明string 类型。
【讨论】:
Integer = string,而不是string = Integer。因为string 是关键字而Integer 不是。因此,如果 string 存在于现代 Delphi 中,则根本无法重新声明它,而不是重新声明一些宏。
Integer = string; 取笑您的同事;) 玩得开心。