Visual Basic em Português

Página pessoal de Jorge Paulino sobre o Visual Basic (VB.NET, ASP.NET, VB6, VBA) e algumas noticias de tecnologia

NOTICIA: Visual Studio 2010 + .NET Framework 4

Esta semana foi disponibilizada para download a Beta do Visual Studio 2010, bem como a .NET Framework 4, também a versão Beta 1, representando um conjunto relevante de novos valores para o desenvolvimento.

Poderá ver as principais alterações do Visual Studio 2010 através da datasheet em formato PDF ou formato XPS.

Existem ainda um série de recursos que mostram as principais novidades, desde vídeos, entrevistas, artigos, etc, em MSDN - Visual Basic 2010 Resources.


VB.NET: AndAlso, OrElse e Using

A utilização de operadores lógicos é tão comum que um pouco por todo o código se usam operadores como o And ou o Or . No entanto o VB.NET tem novos operadores, já disponíveis nas primeiras versões .NET, que muitos não usam por desconhecimento da sua real funcionalidade.

Os operadores AndAlso e OrElse, são designados short-circuiting operators, ou seja, são operadores de rápida validação ou de circuito reduzido.

Vejamos o funcionamento de uma validação:

CONDIÇÃO 1 CONDIÇÃO 2 RESULTADO
True True True
False True False
True False False
False False False

Ou seja, qualquer condição a False irá produzir um resultado False.

O que o AndAlso faz é quando encontrar uma condição a False, decide logo e não executa a condição seguinte. Isto pode reduzir bastante, dependendo das condições, o tempo de execução da aplicação.

A seguinte função leva algum tempo a executar e retorna o resultado (True ou False) indicado no parâmetro. Serve apenas para mostrar os diferentes resultados, na utilização de diferentes operadores, nos exemplos seguintes.

''' <summary>
''' Efectua um ciclo retornando o resultado indicado no parâmetro
'''
</summary>
Private Function doTestLoop(ByVal result As Boolean) As Boolean
    For
x As Byte = 0 To 200
        Threading.Thread.Sleep(5)
        Application.DoEvents()
    Next

   
Debug.WriteLine("Executado às " & Now.ToString)
    Return result
End Function

Este exemplo executa duas vezes a função doTestLoop() e irá depois parar na condição falsa


If
doTestLoop(False) And doTestLoop(False) Then
    Stop
' Condição verdadeira
Else
    Stop
' Condição falsa
End If

Usando o operador AndAlso, e no mesmo exemplo, irá ser executado apenas a primeira condição e salta para a condição falsa, reduzindo o tempo de ciclo.

If doTestLoop(False) AndAlso doTestLoop(False) Then
    Stop
' Condição verdadeira
Else
    Stop
' Condição falsa
End If

Isto permite que se criem validações, apenas em uma linha, sem erros indesejados.

Por exemplo, o seguinte código tenta encontrar um Form na aplicação que não existe, ficando a variável frm a Nothing. Neste caso é verificada a primeira condição, que é falsa, e sai da validação, mas se utilizássemos o operador And, iria ser feita a primeira condição e depois a segunda, originando um erro "Object reference not set to an instance of an object".


Dim
frm As Form = My.Application.OpenForms("Nome não Existente")
If frm IsNot Nothing AndAlso frm.Text = "Nome Pretendido" Then
    Stop
' Condição verdadeira
End If

O mesmo acontece com o operador OrElse. Se encontrar uma condição verdadeira ele decide, sem ter de executar a próxima.

A validação de uma condição Or funciona desta forma, ou seja, qualquer condição verdadeira irá ter um resultado verdadeiro:

CONDIÇÃO 1 CONDIÇÃO 2 RESULTADO
True True True
False True True
True False True
False False False

Neste exemplo simples será executado apenas a primeira condição, saltando logo para a condição verdadeira:


If doTestLoop(True) OrElse doTestLoop(True) Then
    Stop
' Condição verdadeira
End If


Resumindo: são dois operadores que podem e devem ser utilizados, especialmente se as condições/validações podem levar algum tempo a executar. Podem ainda simplificar o código, evitando-se utilizar If’s dentro de If’s para se conseguir o mesmo resultado.


O bloco Using é uma novidade da Visual Studio 2005/.NET Framework 2.0 e permite criar um bloco, onde no final, os recursos utilizados são libertados. Isto é muito útil e prático, especialmente quando se utilizam unmanaged resources, como ligações a base de dados, ligações a ficheiros de texto, objectos COM, etc.

Os unmanaged resources, são recursos que o CLR (Common Language Runtime) não liberta e que ficam a consumir desnecessariamente recursos do sistema. Os managed resources, por sua vez, são geridos pelo CLR através do .NET Framework Garbage Collector (GC).

No seguinte exemplo, mesmo que aconteça um erro, a ligação à base de dados é fechada e limpa, porque o Using faz o .Disposal() automaticamente sem código adicional.

Dim myConnectionString As String = String.Empty

Using conn As New SqlConnection(myConnectionString)
    conn.Open()

    Using command As New SqlCommand("SELEC * FROM myTable", conn)
        command.ExecuteNonQuery()
    End Using

End Using

Como se pode ver neste exemplo simples, é declarada a variável, usada dentro do bloco e finalmente faz o Disposal da variável.


PS: Como sempre, qualquer dúvida, comentário ou correcção ao artigo é sempre bem vinda!


NOTICIA: Votação - Melhor Artigo VB.NET Abril 2009 - CodeProject


Recentemente escrevi o meu primeiro artigo internacional sobre uma Merged DataGridView que mostra, além de algumas personalizações, manipulações e animações, como simular/criar uma nova linha contínua e com isso poder mostrar mais informação para cada registo. Este artigo, que também está disponível neste blog em Português, foi escrito originalmente para o site www.codeproject.com, que é uma comunidade com mais de 6.000.000 de utilizadores e com um concurso mensal de artigos de programação em diversas áreas.

Numa visita recente ao site, verifiquei que está entre os 10 melhores do mês de Abril, na categoria de VB.NET, e encontra-se em votação para o melhor artigo do mês de Abril de 2009.

Foi sem dúvida um excelente início!

Nesta altura encontra-se em primeiro lugar na votação, mas se quiserem participar/contribuir (apenas para utilizadores registados) é só utilizarem o seguinte endereço: Best VB.NET article of April 2009


NOTICIA: Visual Basic Future Direction no TechEd North America

Terminou o TechEd North America 2009 que decorreu de 11 a 15 de Maio em Los Angeles. Muitas sessões estão disponíveis online para quem se inscreveu no evento, mas muitas estão também disponíveis para todos.
 
Algumas das sessões são realmente interessantes e mostram, em várias áreas, algumas das novidades dos produtos Microsoft ou de fornecedores.
 
Este é um dos vídeos disponíveis muito interessantes e que mostra o futuro do Visual Basic e as principais alterações na versão 2010.
 
http://www.msteched.com/online/view.aspx?tid=1d3d650b-a6b3-4c98-9240-571866969b89

Podem também descarregar o vídeo e visualizar depois.



Microsoft Office Especialist

Membro da Comunidade
Experts-Exchange


Administ. da Comunidade
Portugal-a-Programar



Twitter

Artigos no CodeProject

Artigos no CodeProject

Subscrever Novidades

Endereço de Email:

Delivered by FeedBurner

Seguidores

Histórico