testgenericoperatoras.out

来自「格式化源码的最新板」· OUT 代码 · 共 66 行

OUT
66
字号
program testgenericoperatoras;{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  maclasse = class
    function contraint<x:
    class>(avalue: TObject): x;
    function noncontraint<x>(avalue: TObject): x;
    procedure test;
  end;

  function maclasse.contraint<x>(avalue: TObject): x;
  begin
    Result := avalue as x;
  end;

  function maclasse.noncontraint<x>(avalue: TObject): x;
  begin
    Result := avalue as x;
  end;

  procedure maclasse.test;
  var
    resultat: TObject;
    str:      string;
    int:      integer;
  begin
    resultat := TObject.Create;
    writeln('Classe de Resultat = ', resultat.ClassName);
    resultat := contraint<TObject>(str);
    resultat := noncontraint<TObject>(str);
    writeln(
      'Resultat = Nil');
    try
      int := noncontraint<integer>(str);
    except
      on e: nullreferenceexception do ;
    end;
    str      := 'Test';
    resultat := TObject.Create;
    writeln('Classe de Resultat = ', resultat.ClassName);
    resultat := contraint<TObject>(str);
    writeln('Classe de Resultat = ', resultat.ClassName);
    resultat := noncontraint<TObject>(str);
    try
      int := noncontraint<integer>(str);
    except
      on e: invalidcastexception do ;
    end;
  end;

var
  classe: maclasse;
begin
  classe := maclasse.Create;
  try
    classe.test;
  except
    on e: Exception do
      writeln(e.ClassName, ': ', e.message);
  end;
  readln;
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?