
Novo Projeto - Windows Forms - Classes
Em Name digite "Classes" e clique em OK. Agora vamos montar nosso Form: coloque três componentes Label, três TextBox e um Button. Os nomes dos TextBox devem ser txtPrimeiroNome, txtNomeMeio e txtUltimoNome, o botão deve se chamar btnMontar. Veja como deve ficar seu form:

Layout do form
Agora vamos criar a classe: você pode escrevê-la no mesmo arquivo do form ou criar outro. Em nosso exemplo irei criar um arquivo separado, o que facilitaria caso essa classe fosse utilizada em outros projetos.
Para acessar a janela "Add New Item..." pressione as teclas "Ctrl+Shift+A", veja a janela abaixo:
Add New Item
Selecione o item "Class" e em Name digite "MontaNome.vb". Clique em "Open".
O Visual Studio.NET criará um arquivo contendo apenas o seguinte texto:
Public Class MontaNome
End Class
Agora digite o seguinte código logo abaixo da expressão "Public Class MontaNome":
Private vNomeCompleto As String
Private vPrimeiroNome As String
Private vNomeMeio As String
Private vUltimoNome As String
Public Property PrimeiroNome() As String
Get
PrimeiroNome = vPrimeiroNome
End Get
Set(ByVal Value As String)
vPrimeiroNome = Value
End Set
End Property
Public Property NomeMeio() As String
Get
NomeMeio = vNomeMeio
End Get
Set(ByVal Value As String)
vNomeMeio = Value
End Set
End Property
Public Property UltimoNome() As String
Get
UltimoNome = vUltimoNome
End Get
Set(ByVal Value As String)
vUltimoNome = Value
End Set
End Property
Public ReadOnly Property NomeCompleto() As String
Get
NomeCompleto = vNomeCompleto
End Get
End Property
Public Function Montar()
vNomeCompleto = vPrimeiroNome & " " & vNomeMeio & " " & vUltimoNome
End Function
Salve o projeto pressionando "Ctrl+S" e a classe está criada. Agora vamos estudar algumas diferenças entre a sintaxe do Visual Basic 6 e esta nova sintaxe. Veja como seria o código desta classe no Visual Basic 6:
Private vNomeCompleto As String
Private Shared vPrimeiroNome As String
Private Shared vNomeMeio As String
Private Shared vUltimoNome As String
Public Property Let PrimeiroNome(info As String)
vPrimeiroNome = info
End Property
Public Property Get PrimeiroNome() As String
PrimeiroNome = vPrimeiroNome
End Property
Public Property Let NomeMeio(info As String)
vNomeMeio = info
End Property
Public Property Get NomeMeio() As String
NomeMeio = vNomeMeio
End Property
Public Property Let UltimoNome(info As String)
vUltimoNome = info
End Property
Public Property Get UltimoNome() As String
UltimoNome = vUltimoNome
End Property
Public Property Get NomeCompleto() As String
NomeCompleto = vNomeCompleto
End Property
Public Function Montar()
vNomeCompleto = vPrimeiroNome & " " & vNomeMeio & " " & vUltimoNome
End Function
Public Class Inverso
Public Shared vNomeInverso As String
Public Shared Function Inverter()
vNomeInverso = vUltimoNome & " " & vNomeMeio & " " & vPrimeiroNome
End Function
End Class
Veja que a estrutura da declaração das propriedades foi alterada, propiciando assim um código muito mais estruturado e compreensível. O "Property Let" também foi abolido: agora existem o "Property Get" para retornar um valor e o "Property Set" para atribuir um valor à propriedade. Perceba também que no código do VB.NET há um propriedade com o atributo "ReadOnly", que somente contém o "Property Get" pois nenhum valor pode ser atribuído a ela.
Note também que criamos uma classe "Inverso" dentro da classe "MontaNome" - o que mostra a possibilidade do aninhamento de classes, sendo que essa segunda classe inverte o nome. Note também que para que as variáveis "PrimeiroNome", "NomeMeio" e "UltimoNome" ficarem acessíveis foi preciso adicionar um modificador "Shared" nas declaração das mesmas: desta maneira elas ficam disponíveis em classes aninhadas (ou classes filhas), como também foi feito na variável "vNomeInverso" e na function "Inverter" da classe filha.
Agora vamos dar vida ao programa. Volte ao form e clique duas vezes no botão btnMontar e digite o seguinte código no evento bntMontar_Click:
Dim oMontaNome As New MontaNome
Dim NomeCompleto as String
Dim NomeInverso as String
oMontaNome.PrimeiroNome = txtPrimeiroNome.Text
oMontaNome.NomeMeio = txtNomeMeio.Text
oMontaNome.UltimoNome = txtUltimoNome.Text
oMontaNome.Montar()
oMontaNome.Inverso.Inverter()
NomeCompleto = oMontaNome.NomeCompleto
NomeInverso = oMontaNome.Inverso.vNomeInverso
MsgBox(NomeCompleto & "-" & NomeInverso, MsgBoxStyle.Information, "Nome Completo") 'exibe uma mensagem com o nome completo
Pressione F5 para iniciar o programa: quando ele abrir digite os nomes nos TextBoxes e depois clique em "Montar".
Veja nas imagens:

Textbox preenchidos

Resultado após clique no botão bntMostrar
Conclusão
Com certeza as classes são fundamentais para ganhar produtividade no desenvolvimento de aplicações. A reutilização de classes poupa muito tempo e classes bem projetadas e desenvolvidas podem ser úteis em diversas aplicações e situações. Sobre a mudança na sintaxe das classes penso que não foi algo tão radical: na verdade as mudanças melhoraram muito o código, tornando-o mais fácil para entendimento e mais estruturado.
O recurso de aninhamento de classes também pode ser muito útil, e com certeza contribuirá para a reutilização de classes, com isso é possível separar tarefas diferentes dentro de classes aninhadas, além de inúmeras outras utilizações ;) ...
Marcas Registradas
Visual Basic.NET, Visual Studio.NET, Windows são marcas registradas da Microsoft Corporation.
Todos os demais nomes registrados, marcas registradas ou direitos de uso citados neste TM pertencem a seus respectivos proprietários.