试图将项目从Delphi 2007迁移到Delphi XE4.在Delphi XE4中将String转换为AnsiString的最佳方法是什么?
Dav*_*nan 11
你只需指定它:
var
AnsiStr: AnsiString;
Str: string;
....
AnsiStr := Str;
Run Code Online (Sandbox Code Playgroud)
编译器会发出警告,提醒您:
W1058 Implicit string cast with potential data loss from 'string' to 'AnsiString'
您可以使用强制转换来抑制该警告:
AnsiStr := AnsiString(Str);
Run Code Online (Sandbox Code Playgroud)
默认情况下,虽然当然仍有数据丢失的可能性,但不会发出警告.如果启用警告W1060,编译器会说:
W1060 Explicit string cast with potential data loss from 'string' to 'AnsiString'
当然,并不期望Delphi XE4代码有很多可供使用的地方AnsiString.除非您有非常具体的互操作要求,否则文本最好保留在本机数据类型中string.如果要对字节数组进行操作,请使用TBytes或TArray<Byte>.