VB .NET - Declaração de variáveis o que mudou ?
Muitos programadores não se preocupam com noções teóricas ou aspectos técnicos sobre a linguagem que utilizam. |
O Visual Basic por ser uma ferramenta RAD , estimula muito o que chamamos programação por tentativa e erro.
O que importa é ver o sistema funcionando . Em nome desta funcionalidade verdadeiras barbaridades são cometidas em Visual Basic.
Vou abordar o que mudou com relação a declaração de variáveis no VB.NET . Posso adiantar que as mudanças foram para melhor em todos os aspectos. Sem contar que o VB.NET agora é uma linguagem mais bem 'tipada' e isto vai evitar muitas 'loucuras' dantes cometidas ; se você não entender o que está acontecendo não vai conseguir fazer rodar programas muito simples feitos na versão .NET.
1- Múltiplas declarações em uma única linha de código
Nas versões anteriores do Visual Basic , quando tínhamos múltiplas declarações aparecendo na mesma linha , para definir o tipo correto de dados de cada variável deveríamos usar a cláusula AS explicitamente na frente de cada variável , ou seja , se você fizer uma declaração assim : Dim a , b c as String .
O que teria ? Vejamos:
Declaração |
Resultado no Visual Basic 6.0 |
Resultado no Visual Basic .NET |
Dim a , b c as String |
a e b será do tipo Variant e c será do tipo String |
a, b e c serão do tipo String |
Para obter o mesmo efeito no VB 6.0 teríamos que fazer a declaração assim :
Dim a AS String , b AS String , c AS String
No VB.NET podemos fazer assim :
Dim a , b , c AS String
2- O tipo de dados padrão
No VB 6.0 se você declarar uma variável sem definir explicitamente seu tipo (sem usar a cláusula AS) o tipo padrão assumido é o tipo Variant. Assim na declaração :
Dim a |
A variável a será do tipo Variant => |
Dim a AS Variant |
no VB.NET a mesma declaração tornará a variável a do tipo Object .
Object é o valor padrão para variáveis no VB.NET.
Dim a |
A variável a será do tipo Object => |
Dim a As Object |
3- O escopo das variáveis
O Visual Basic .NET trouxe um novo escopo para as variáveis: o escopo a nível de blocos. Assim no VB.NET quando você declara uma variável dentro de um bloco de código : FOR...NEXT , DO WHILE , IF..THEN , SELECT...CASE , TRY ... CATCH, etc... ela deixa de existir fora do bloco de código onde foi declarada.
Assim no VB.NET o código abaixo :
For i = 0 to 10 Dim nome as String nome = "Carlos" Next i nome="" |
A variável nome
será visível somente dentro do bloco de código
definido por FOR/NEXT Se você tentar usar a variável nome fora do bloco vai obter a seguinte mensagem de erro: Name 'nome' is not declared. |
No VB 6.0 usando a mesma declaração , a variável nome poderia ser usada dentro da função sem problemas.
No VB.NET
4- Declaração de variáveis e conversão entre tipos.
No VB 6.0 quando a fazer a declaração abaixo , você terá :
Dim a , b as Long |
a será do tipo Variant e b do tipo Long |
Se você fizer a seguinte atribuição : a = "Copa 2002" não vai obter nenhuma mensagem de erro.
No VB.NET a mesma declaração irá resultar em
Dim a , b as Integer |
a será do tipo Integer e b do tipo Integer |
Se você fizer a seguinte atribuição : a = "Copa 2002" vai obter uma mensagem de erro.
Se a opção Option Strict estiver definida como ON a mensagem será :
Option Strict disallows implicit conversions from String to Integer.
Se a opção Option Strict estiver definida como OFF a mensagem será :
An
unhandled exception of type 'System.InvalidCastException'
occurred in microsoft.visualbasic.dll.
Additional information: Cast from String ("Hello
world") to Integer is not valid.
Sabe porquê ? Porque a variável a é do tipo de dados Integer e o valor literal "Copa 2002" é considerado do tipo String e isto resultará em tipos incompatíveis de dados ,ou seja , você não poderá converter String para Integer.
Por outro lado se Option Strict estiver OFF você pode converter entre tipos de dados implicitamente. Veja :
Dim a , b a = " Copa " b = 100 a = 2002 |
Quando você
não declara as variáveis explicitamente ( não usa a
cláusula AS) Se Option Strict for OFF os tipos dados podem ser convertidos na atribuição das variáveis. |
5- Inicializando variáveis
No VB.NET podemos inicializar uma variável da seguinte forma :
Dim N as Integer = 7 ou ainda :
Dim X as integer = 1 , Y AS String = "COPA" , Z AS Integer = 2002
Todas estas formas são válidas e não são suportadas pelo Visual Basic 6.
Mas você não pode inicializar mais de uma variável , assim : Dim X, Y as Integer = 10
Resumindo : para inicializar uma variável temos que declará-la usando o tipo e a cláusula AS.
Bem , vamos parar por aqui, continuaremos em um outro artigo.
Até la´...
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências: