Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Fehler "Type-Parameter 'T' must be value type" obwohl er es ist

  Alt 25. Nov 2021, 11:05
Have you turn it off and on again?

Hier geht's ohne Probleme.

Embarcadero® Delphi 10.4 Version 27.0.40680.4203
Delphi 10.4 Update 2

Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

  type
   TSomeClass<T: record> = class abstract(TObject)
   public
     FRecord: T;
   end;

   TSomeRecord = record
      someValueType: Byte;
      someManagedType: IInterface;
   end;

   TRecordClass = class abstract(TSomeClass<TSomeRecord>)
      //
   end;

begin
  try
    Writeln(TSomeClass<TSomeRecord>.ClassName);
    Writeln(TRecordClass.ClassName);
    var Günni := TRecordClass.Create;
    Writeln(Günni.FRecord.someValueType.ToString);
    Writeln(THandle(Günni.FRecord.someManagedType).ToString);
    Günni.Free;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
  Readln;
end.
Code:
TSomeClass<Project1.TSomeRecord>
TRecordClass
0
0
  Mit Zitat antworten Zitat