Come faccio a qualificare completamente di tipo identificatori nei metodi generici in Delphi?
Domanda
Questa domanda è venuto quando si cerca di assegnare l'evento OnUDPRead su un componente di Indy IdUDPServer. (DelphiXE Update 1)
Il codice generato automaticamente a seguito dà un errore di sintassi "Previsto '>' ma '' trovato ":
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
AData: TArray<System.Byte>; ABinding: TIdSocketHandle);
posso ovviare a questo cambiando la dichiarazione:
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
AData: TArray<Byte>; ABinding: TIdSocketHandle);
Per riferimento futuro, come faccio a qualificare completamente un identificatore del tipo in un metodo generico?
Soluzione
identificatori di tipo completo non sono (ancora) supportati. Ma si può aggirare questo utilizzando un tipo alias:
type
TMyByte = System.Byte;
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
AData: TArray<TMyByte>; ABinding: TIdSocketHandle);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow