In sostanza, posso farlo e cosa succede realmente?
public class foo
{
public int id;
public void bar()
{
//do stuff
this = null; // ?
//do stuff
foo[] all = otherclass.FindAllFoos();
foreach(foo f in all)
{
if(f.id == 42)
{
this = f; // ?
break;
}
}
//do stuff
}
};
Alcuni sfondi specifici che non dovrebbero avere importanza:
Il vero progetto ha una classe che rappresenta un dispositivo USB con cui sto attualmente parlando e, appena prima di questo punto nel programma, dico al dispositivo di riavviarsi. Quando il dispositivo torna, sembra abbastanza diverso da invalidare questa istanza, quindi devo trovarlo di nuovo tra tutti i dispositivi collegati e continuare a parlarci.