2) I want to do this :
s = new Socket (), rather than Socket s = new Socket (),
I know var kinda does this,but I want a variable to hold multiple types in the course of execution. so I can set s = null, and assign it to a new instance of another object
This doesn't sound like very type safe code. Why would you want to do this? We're in OO land now, this isn't PHP or ASP.