我有以下无法编译的代码片段:

procedure Frob(const Grob: WideString);
var
   s: WideString;
begin
   s :=
       Grob[7]+Grob[8]+Grob[5]+Grob[6]+Grob[3]+Grob[4]+Grob[1]+Grob[2];
   ...
end;

Delphi5 提示 Incompatible types

我尝试将其简化为:
s := Grob[7];

哪个有效,并且:
s := Grob[7]+Grob[8];

哪个没有。

我只能假设 WideString[index] 不返回 WideChar

我试图强制事情成为 WideChars :
s := WideChar(Grob[7])+WideChar(Grob[8]);

但这也失败了:



脚注
  • 5 : Delphi 5
  • 最佳答案

    Grob[7] 是一个 WideChar ;这不是问题。

    问题似乎是 + 运算符不能对宽字符起作用。但它可以作用于宽字符串,任何宽字符都可以转换为宽字符串:

    S := WideString(Grob[7]) + WideString(Grob[8]);
    

    关于delphi - 如何通过索引访问WideString的字符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10437144/

    10-10 23:16