testgenericmethods1.out

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

OUT
55
字号
program TestGenericMethods1;

{$APPTYPE CONSOLE}

{ AFS December 2007 

  This code compiles, but is not semantically meaningfull.
  It is test cases for the code-formating utility

  Test new generics syntax - code from TridenT
}

uses
  SysUtils;

type
  // m閠hode g閚閞ique sur une classe g閚閞ique
  TGenericType<AnyType> = class
    FData: AnyType;
    function GetData: AnyType;

    //ici l'usage d'Anytype g閚鑢e le warning :
    // H2509 Identificateur 'AnyType' en conflit avec les param鑤res type du type conteneur
    procedure UneMethodeGenerique<AnyType>(Variable: AnyType);
    function UneFonctionGenerique<AnyType>: AnyType;

    procedure SetData(Value: AnyType);
    property Data: AnyType Read GetData Write SetData;
  end;

  function TGenericType<AnyType>.GetData: AnyType;
  begin
    Result := FData;
  end;

  procedure TGenericType<AnyType>.SetData(Value: AnyType);
  begin
    FData := Value;
  end;

  procedure TGenericType<AnyType>.UneMethodeGenerique<AnyType>(Variable: AnyType);

  begin
    Variable := Default(AnyType);
    Writeln(TObject(Variable).ClassName);
    //Writeln('Default=',Variable); //E2054 cast obligatoire pour Writeln
    Writeln('Default pour AnyType=', TObject(Variable).ClassName, '=', TObject(Variable));
    Writeln(TObject(Variable).ClassName);
  end;

  function TGenericType<AnyType>.UneFonctionGenerique<AnyType>: AnyType;
  var
    Variable: AnyType;
  begin
    //Result := AnyType;   //'(' attendu mais ';' trouv

⌨️ 快捷键说明

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