如何在Delphi中传递作为参数的范围?

HMc*_*McG 2 delphi range

在Delphi中,我可以定义一系列字符或整数,如下所示:

var
  a,i: integer;
  b: char;
  intrange: 1..9;
  charrange: '?' .. '?';

begin

  for a := low(IntRange) to high(IntRange) do
  begin
    Memo1.Lines.Add('Integer Range Iteration = ' + intToStr(a) ) ;
  end;

  i:=0;
  for b := low(charrange) to high(charrange) do
  begin
    i := i + 1;
    Memo1.Lines.Add('Character Range Iteration = ' + intToStr(i) + ',   value = ' + b +'  ord '+ inttostr(ord(b))) ;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

如何将范围作为参数传递给函数?

And*_*and 13

您可以使用子范围类型:

type
  TCharrange = '?' .. '?';

procedure MyFunction(Char: TCharrange);
Run Code Online (Sandbox Code Playgroud)

现在你可以做到

MyFunction('?');
Run Code Online (Sandbox Code Playgroud)

MyFunction('a');
Run Code Online (Sandbox Code Playgroud)

不行.