Ciao a tutti ragazzi, in particolare Oregon, Scara e Alka che è un sacco che non li sento....
Ho un problemino(one) che mi impedisce di andare avanti nei miei viaggi spaziali con Xna, una specie di effetto quantistico (non sto scherzando).
Creo un hashtable
codice:
public static Hashtable myhash = new Hashtable();
Lo riempo con un elemento di tipo int
codice:
myhash.Add("A", 1);
Dopodichè voglio eseguire questa sub (si chiama Q proprio perchè data la mia grande ignoranza in C# rappresenta una indeterminazione quantistica):
codice:
// k è la chiave, x un numero reale qualsiasi
public void Q(string k, float x)
{
if (myhash[k].GetType().ToString() == "System.Int32")
{
int K = (int)myhash[k];
if (x < 1f)
{
myhash.Remove(k);
myhash.Add(k, "uno");
}
{
else // se non è int è string
{
string K = (string)myhash[k];
if (x > 1f)
{
myhash.Remove(k);
myhash.Add(k, 1);
}
}
}
Se applico la sub
Q("A", 10f)
allora myhash["A"] diventa 1, mentre con
Q("A", 0.3f)
myhash["A"] diventa "uno". Il caso x=1f non mi interessa.
DDDDOMANDA: come faccio a "estrarre" l'oggetto (int o string) K dalla sub? Se sono dentro la sub Q, K è a disposizione, lo vedo e posso sapere tutto di lui, ma se sono "fuori dalla scatola Q" non posso vedere K, so solo che o è int o è string, una sovrapposizione di stati quantici (che vi dicevo?)
Se scrivi la Q come funzione devo specificare il tipo restituito ma è proprio quello che non so; se scrivo Q come sub e gli faccio passare un parametro con 'ref' o 'out' o che so io quale diavoleria, devo lo stesso indicare in firma il suo tipo ma è proprio quello che non so.
Dunque?
Grazie a tutti.