23/11/21 9:16
Thejuster
Salve ragazzi, mi sto un pò confondendo con i tipi generici.
Magari non riesco a trovare una soluzione per la troppa confunsione che ho in testa
E qualcuno più lucido in questo momento può aiutarmi.
Niente di particolare, non riesco ad ottenere un tipo generico.
Devo fare una funzione che Accetta sia il Tipo come argomento che quello di ritorno.
esempio dovrei ottenere qualcosa del genere
(l'esempio non funziona ma è giusto per capire cosa voglio ottenere)
Nell'esempio, Invio un tipo strutturato come argomento che contiene diverse informazioni e funzioni.
nello specifico PacketData che sarebbe un pacchetto strutturato con Header, Body e Footer.
che non supera i 60byte a pacchetto inviato.
Devo inviare ed in seguito ricevere un'altro pacchetto di risposta che può variare a seconda del tipo dell'informazione contenuta nell'Header. quindi il tipo di ritorno non sarà mai uguale a quello inviato.
per questo mi serve un tipo di ritorno generico e non standard.
Ma stranamente mi da errore dicendo di non poter convertire T in in PacketData o altro.
Da cosa può dipnedere?
Spero qualcuno possa darmi qualche illuminazione
Magari non riesco a trovare una soluzione per la troppa confunsione che ho in testa
E qualcuno più lucido in questo momento può aiutarmi.
Niente di particolare, non riesco ad ottenere un tipo generico.
Devo fare una funzione che Accetta sia il Tipo come argomento che quello di ritorno.
esempio dovrei ottenere qualcosa del genere
(l'esempio non funziona ma è giusto per capire cosa voglio ottenere)
var ret = SendGetPacket<PacketData>(paket); static object SendGetPacket<T>(T type) { object obj; if(type.getType() == typeof(PacketData)) { byte[] data = ((PacketData)type).Serialize(); //Errore Non è possibile convertire il tipo 'T' in Packet.PacketData'. if ((uint)((PacketData)paket).HeaderCommand == 0x14) { PacketData r = new PacketData(); r.Command = (uint)PacketData.HeaderCommand.ACT_LOGIN; r.Argument1 = p.Argument1; r.Argument2 = p.Argument2; r.Serialize(); client.SendPacket(r); obj = r; } } else { //Altro } return obj; }
Nell'esempio, Invio un tipo strutturato come argomento che contiene diverse informazioni e funzioni.
nello specifico PacketData che sarebbe un pacchetto strutturato con Header, Body e Footer.
che non supera i 60byte a pacchetto inviato.
Devo inviare ed in seguito ricevere un'altro pacchetto di risposta che può variare a seconda del tipo dell'informazione contenuta nell'Header. quindi il tipo di ritorno non sarà mai uguale a quello inviato.
per questo mi serve un tipo di ritorno generico e non standard.
Ma stranamente mi da errore dicendo di non poter convertire T in in PacketData o altro.
Da cosa può dipnedere?
Spero qualcuno possa darmi qualche illuminazione
Ultima modifica effettuata da Thejuster 23/11/21 9:44
mire.forumfree.it/ - Mire Engine
C# UI Designer
C# UI Designer