⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testgenericoperatoras.out

📁 格式化源码的最新板
💻 OUT
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -