delphi - 为什么 Delphi 在将 ShortString 分配给字符串时会发出警告?

标签 delphi

我正在将一些遗留代码转换为 Delphi 2010。

有相当多的旧 ShortString,例如 string[25]

为什么分配如下:

type 
  S: String;
  ShortS: String[25];

...
S := ShortS;

导致编译器生成此警告:

W1057 Implicit string cast from 'ShortString' to 'string'.

此处没有发生数据丢失。在什么情况下此警告对我来说是有用的信息?

谢谢!

汤姆

最佳答案

这是因为您的代码隐式将单字节字符串转换为 UnicodeString。它会警告您,以防您可能忽略了它,因为如果您错误地这样做,可能会导致问题。

要使其消失,请使用显式转换:

S := string(ShortS);

关于delphi - 为什么 Delphi 在将 ShortString 分配给字符串时会发出警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2121265/

相关文章:

delphi - 将 TRttiProperty 映射到等效的类定义

delphi - 为什么在Delphi XE中打开项目时主窗体无法访问DataModule的图像和操作?

delphi - 类里面每一项的重复程序

android - Delphi 移动 UIActionSheet 跨平台等效项

Delphi:以高分辨率绘制圆弧

delphi - 打印机打印尺寸

delphi - 如何让 TStringList 在 Delphi 中以不同方式排序

delphi - 设置定时器暂停

.net - 在Delphi 7中调用C++ DLL函数

string - Delphi 中使用 Pos() 查找换行符