[c#] Cast dinamico

domenica 09 novembre 2008 - 12.09

yagamiraito Profilo | Newbie

E' possibile avere un metodo che resituisce un oggetto di tipo differente?

Cioè una cosa cosi (che ovviamente non funziona)

public Object metodoA (string campo1, Type tipo)
{
Object obj = null;
// fa quello che deve fare con campo1
return (tipo)obj;
}

e quando richiamo il metodo posso fare :
string a = metodoA("qualcosa", typeof(string));
Int32 b = metodoA("qualcosa", typeof(Int32));
e così via.





0v3rCl0ck Profilo | Guru

Ciao

>E' possibile avere un metodo che resituisce un oggetto di tipo
>differente?
>
>Cioè una cosa cosi (che ovviamente non funziona)
>
>public Object metodoA (string campo1, Type tipo)
>{
> Object obj = null;
> // fa quello che deve fare con campo1
> return (tipo)obj;
>}
>
>e quando richiamo il metodo posso fare :
>string a = metodoA("qualcosa", typeof(string));
>Int32 b = metodoA("qualcosa", typeof(Int32));
>e così via.
>

Non ho capito bene le tue intezioni profonde nel fare quel metodo, però forse ho capito che potrebbe farti comodo vedere le funzioni template, che eseguono le stesse operazioni su diversi tipi dato, senza dovere creare una funzione per ogni tipo dato passato come input.

Eccotene un paio di esempi:

public T metodoA<T>(T campo1) { // fa quello che deve fare con campo1 return campo1; } public T metodoA<T>(string campo1) { object obj = null; // fa quello che deve fare con campo1 obj = campo1; return (T)obj; }

Spero di esserti stato utile


Enjoy It

- Michael -
http://blogs.dotnethell.it/Regulator/

yagamiraito Profilo | Newbie

Era proprio quello che cercavo!
Grazie. :)

0v3rCl0ck Profilo | Guru

>Era proprio quello che cercavo!

Perfetto

>Grazie. :)

Di niente, alla prossima
Ciao

- Michael -
http://blogs.dotnethell.it/Regulator/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5