Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [c#]Cast variabile a tipo sconosciuto...

    Dunque, io ho una property che mi dice fondamentalmente: "il dato che devi restituirmi deve essere del tipo X". Come posso fare per fare un cast al tipo richiesto prima di restituire il risultato (supponendo di aver fatto a monte tutti i controlli per essere sicuro che il cast sia fattibile), senza sapere a priori quale tipo sia?

    Grazie, ciao.

  2. #2
    Utilizzando un generic, ma se spieghi meglio il contesto del problema forse si può trovare una soluzione migliore.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Originariamente inviato da MItaly
    Utilizzando un generic, ma se spieghi meglio il contesto del problema forse si può trovare una soluzione migliore.
    Spiegare la cosa in due parole non è semplice... cmq io ho un oggetto A a cui altri oggetti (non mi è dato sapere quanti e quali) passano dei dati attraverso un metodo. Non posso sapere a priori quale sia il tipo dei dati passati, che vengono tutti boxati e passati come Object. Il mio oggetto A deve prendere tutti questi dati, e farne degli array ciascuno del tipo giusto. Quindi deve rifare un boxing per ognuno di questi array, e passarli come Object ad un altro oggetto, che farà più o meno la stessa cosa, ma ad un livello gerarchico superiore...

    Ho dato un'occhiata ai Generics, non ne conoscevo assolutamente l'esistenza. Vedrò se possono servire al mio scopo... intanto se per caso vi viene in mente qualche altra soluzione, io sono sempre pronto a recepire nuovi consigli

    Grazie, ciao.

  4. #4
    Un altro modo per spiegarvi la cosa ed avere una soluzione.

    Dato il codice:
    codice:
    public Object method1(Object parameter1)
    {
    Type type1 = typeof(parameter1);
    
    ...
    
    }
    Se non sbaglio type1 non sarà "necessariamente" Object, perchè typeof() restituisce il tipo boxato all'interno dell'oggetto, giusto? Come faccio quindi a creare una variabile del tipo type1, dato che non so quale è?

    Grazie, ciao.

  5. #5
    cosi... su due piedi, mi verrebbe di utilizzare un GetTypeCode() e uno switch.

    del tipo

    switch (variabile.GetTypeCode()
    {
    case string:
    codice codice codice;
    break;
    case int32:
    codice codice codice;
    break;
    }

    una cosa del genere.
    ..::Gentoo powered::..

  6. #6
    O usi i generics o non ne esci, dato che qualunque cast tu possa fare sul return comunque ti verrà annullato dalla conversione automatica al tipo restituito (Object).
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.