Hope this one makes any sense :) C c = new C; C mouseOverObject = c;
int delegate() deleg = &mouseOverObject.getSomeVariable; mouseOverObject = null; int value; void write() { if(deleg !is null) //how do I make this check for (mouseOverObject !is null)? { value = deleg(); } writefln( value); } mainloop: ... code which may change mouseOverObject to be null or any C object write(); goto mainloop;