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