找不到 "Chars" 的属性资源库



我正在尝试执行以下表达式,但我一直遇到这个异常,"找不到'chars'的属性设置程序。"

以下是表达式:

xstr, str : string;
for i := 1 to length(str) do
begin
  if ((i mod 2)<>0) then
  begin
    xstr[i] := char(Ord(str[i]) xor $AA);  <<<<------ Exception Raised
  end
  else
  begin
    xstr[i] := char(Ord(str[i]) xor $55);  <<<<------ Exception Raised
  end;
end;

"str"的值被传递到加密方法中。

这是加密方法的一部分。最好的方法是什么?

System.String是一个不可变的类,这意味着您不能修改它的实例。.NET需要修改字符串操作来创建字符串的新实例。就您的目的而言,创建一个由修改过的字符组成的char数组,然后用它构造一个字符串可能是最简单、最有效的。

通常,System.Text.StringBuilder类提供了一个可变的字符串实例。

事实上,即使不是因为字符串的不变性,你的代码也会失败,因为你没有分配一个字符串,所以分配给xstr[i]会导致缓冲区溢出异常。当使用char的数组时,您需要这样做。

相关内容

  • 没有找到相关文章

最新更新