el detalle montezion es el ambito de la variable mientras en el caso en el que si te funciona esta en el contexto del metodo en el 2do solo existe dentro del IF eso viene desde c++.
 
si lo declaras dentro del if al finalizar el if se pierde y no lo puedes usar fuera de el. 
mira esto  
http://www.lostechies.com/blogs/deri...nce-types.aspx 
investiga sobre el scope de las variables.  
http://www.java2s.com/Tutorial/VB/00...able-Scope.htm