uses
  Generics.Collections;var
  a : array of string;
begin
//do somethingTarray.sort<string>(a);//这样可以正常调用
endvar
  a : array of char;
begin
//do somethingTarray.sort<char>(a);//这样叫报错
end
错误信息:[DCC Error] Unit1.pas(41): E2010 Incompatible types: 'array of Char' and 'Dynamic array'请教高手指点

解决方案 »

  1.   

    Tarray 不支持 array of Char 呗. 参考一下 TArray的帮助吧.
      

  2.   


    var
      arrC : TArray<PChar>;
    begin
      SetLength(arrC, 4);
      arrC[0] := 'b';
      arrC[1] := 'd';
      arrC[2] := 'c';
      arrC[3] := 'a';  TArray.Sort<PChar>(arrC, TComparer<PChar>.Construct(
        function (const a, b: PChar): Integer
        begin
          Result := Ord(a^) - Ord(b^);
        end
      ));
      ShowMessage(arrc[0] + ', ' + arrc[1] + ', ' + arrc[2] + ', ' + arrc[3]);
      

  3.   

    uses Generics.Collections, Generics.Defaults;
      

  4.   


    pchar是可以 我是要char的就不行,你这个pchar和我直接用string一样的,主要是我想用char
      

  5.   

    没用过新版本的Delphi。不过在老版本中,如果碰到这种Dynamic Array与Array of XXX不匹配的情况时,常常是定义一个TXXX=array of XXX,然后在变量定义时采用var xxx: TXXX这样的方式的。