Visual Basic .NET

Visual Basic (Visual Studio)
Logotipo.
Data da primeira versão 2001
Paradigma Orientado a objetos , estruturado e imperativo
Autor Microsoft
Última versão VB 16.0 ( 2019 )
Digitando Estático , forte e nominativo
Dialetos VB7 (VS2003), VB8 (VS2005), VB9 (VS2008), VB10 (VS2010)
Influenciado por Visual Basic , C #
Implementações .NET Framework , Mono
Licença Compilador Roslyn , Licença Apache 2.0
Local na rede Internet docs.microsoft.com/en-us/dotnet/visual-basic

Visual Basic .NET é uma linguagem de programação com uma sintaxe semelhante à do Visual Basic 6 .

O VB.NET permite desenvolver em .NET via Visual Studio , em sistemas operacionais Windows (98, 2000, XP, Vista, 7, 8, 8.1 e 10). Como qualquer outra linguagem na plataforma .NET, o VB.NET é compilado na linguagem intermediária CIL .

IDEs (ambientes de desenvolvimento)

O IDE comum e obrigatório de todas as linguagens .NET é o Visual Studio . Este é pago (a licença é proprietária), mas tem uma versão gratuita para desenvolvedores e pequenas empresas (faturamento inferior a um milhão de dólares) chamada Visual Studio Community.

Existe outra versão gratuita, limitada a um idioma: Visual Studio Express .

Existem outros IDEs gratuitos, como SharpDevelop ou MonoDevelop , mas são menos avançados que o Visual Studio.

Versões

Evoluções: de VB6 para VB7 (não exaustiva)

O que torna o VB6 ( Visual Basic 6) diferente do VB7 ( Visual Studio 2003)? :

Evoluções: VB7 a VB8 (não exaustiva)

Algumas novidades surgiram entre o VB7 e o VB8, mas é sobretudo a transição do framework .NET 1.1 para o 2.0 que marca esta evolução.

Aqui está um resumo:

Evoluções: VB8 a VB9 (não exaustiva)

O VB9 obviamente implementou todos os novos recursos em C #, bem como mais alguns:

Evoluções: VB9 a VB10

VB10 (também chamado de VBx) marca um grande ponto de viragem na evolução do VB. Além do fato de que será integrado ao Framework 4, ele deve, antes de tudo, compensar completamente seu "atraso" em relação ao C # em certos pontos (assim como o C # compensará seu atraso em relação ao VB), visto que o " a co-evolução "do C # e do VB.NET foi anunciada oficialmente. Isso não só garante um futuro estável para o VB.NET, que não pode ser negligenciado pela Microsoft, mas também uma garantia de que tudo o que é viável em C # será sempre feito em VB.NET (mesmo que seja de outra forma).

Os recursos planejados para VBx:

Algumas diferenças entre C # e VB.NET (não exaustivas)

Aqui estão as diferenças mais gritantes entre VB.NET e C # (VB.NET e C # evoluem, os itens nesta lista podem estar desatualizados):

Uma lista mais completa de diferenças (a partir de 2005) entre C # e VB.NET existe aqui .

Alguns exemplos de código em VB.NET

Hello World em VB.NET (modo de console)

Public Module HelloWorld ' Les lignes qui suivent sont toutes facultatives, mais conseillées ' Elles sont automatiquement transformées en documentation ''' <summary>Point d'entrée du programme</summary> ''' <param name="Args">Les arguments en ligne de commande passé au programme</param> Public Sub Main(ByVal Args As String()) ' Écrire dans la console Console.WriteLine("Hello World!") ' Attendre que l'utilisateur appuie sur une touche Console.ReadKey(False) End Sub End Module

Hello World em VB.NET (modo Windows Forms)

Public Class Form1 Public Sub AfficheMessage() '1ère solution (Fonctionne aussi en VBScript) MsgBox("Hello World!") '2ème solution MessageBox.Show("Hello World!") 'Autre design MsgBox("Hello World", MsgBoxStyle.Critical, "Titre, hello world") 'OU MsgBox("Hello World", MsgBoxStyle.Information, "Titre, hello world") End Sub End Class

Loops e condições

' ' Une simple condition IF ' If XCondition = 3 Then ' XCondition vaut 3 ElseIf YCondition <> 4 Then ' XCondition ne vaut pas 3 ' YCondition ne vaut pas 4 ElseIf ZCondition Is AnotherObject ' XCondition ne vaut pas 3 ' YCondition vaut 4 ' ZCondition et AnotherObject renvoient vers le même objet Else ' Aucune des conditions précédentes n'a été rencontrée End If ' ' Un Select Case optimisé (Switch en C#) ' Select Case X Case 0 ' X = 0 Case 1 ' X = 1 Case 2 ' X = 2 Case Else ' X <> 1 End select ' ' Un SELECT CASE translaté en IF/ELSE IF à la compilation ' Select Case Y Case Is < 3 ' Y < 3 Case 3 ' Y = 3 Case Else ' Y > 3 dans ce cas End Case ' ' Boucle WHILE ' While ImTrue ' ImTrue est vrai ' Ici on change la valeur de ImTrue ImTrue = False End While ' ImTrue n'est plus vrai ' ' Boucle Do...Loop ' ImFalse = False Do ' Aucune condition n'a été appliquée si c'est la première fois ' Sinon, c'est que ImFalse n'est pas faux ' Dans cet exemple, le code n'est pas relancé une {{2e}} fois Loop Until ImFalse = False ' ImFalse est bien faux ' ' Boucles For et For Each ' For X As Integer = 0 to 9 ' Ce code sera exécuté 10 fois Next For X As Integer = 10 To 1 Step -1 ' Ce code sera exécuté 10 fois en sens inverse Next For Each Element As ElementType In Array ' Ce code sera exécuté autant de fois qu'il y a d'éléments de type ElementType dans Array Next

As mesas

'Créer un tableau de texte, vide et de taille infini Dim Tableau() As String 'Créer un tableau de nombres naturels, vide et de taille infini Dim Tableau() As Integer 'Créer un tableau de nombres réels, vide et de taille infini Dim Tableau() As Double 'Assigne une valeur à la première case du tableau Tableau(0) = "Case de tableau" Tableau(0) = 1 Tableau(0) = 1.5 'Créer un tableau de texte de deux lignes et deux colonnes de texte et vide Dim Tableau(2,2) As String 'Créer un tableau de texte de deux colonnes et une ligne comportant "Bonjour" et "Au revoir" Dim Tableau() As String = {"Bonjour", "Au revoir"} 'Créer un tableau de texte de deux colonnes et deux lignes Dim Tableau(,) As String = {{"Colonne 1, ligne 1","Colonne 2, ligne 1"}, {"Colonne 1, ligne 2", "Colonne 2, ligne 2"}} ''Créer un tableau puis le redimensionner en sauvegardant les valeurs 'Créer un tableau de dix lignes et dix colonnes Dim Tableau(9,9) As String 'Redimensionner en vingt lignes et vingt colonnes en préservant les valeurs Redim Preserve Tableau(19,19) 'Effacer toutes les valeurs du tableau en récupérant l'espace Erase Tableau 'Réinitialisation du tableau Tableau à partir de l'élément 1 et pour 5 éléments Array.Clear(Tableau, 1, 5)

Manipulação de exceção

O VB.NET tem instruções try e catch para lidar com exceções (comportamento inesperado das instruções do programa).

Exemplos:

Try My.Computer.FileSystem.FileReadBytes("C:\Chemin\Fichier.ext") Catch Ex as FileNotFoundException 'Pour l'erreur Fichier introuvable MessageBox.Show("Impossible trouver le fichier", "Erreur") Catch Ex as Exception 'Pour les autres erreurs. MessageBox.Show("Une erreur inconnue s'est produite. Erreur renvoyée: " & ex.Message, "Erreur") End Try 'Remarquez que ex récupère les données 'de l'erreur, permettant de les traiter. 'Il y a d'autres options que Message. Consultez la documentation Visual Basic .NET pour en savoir plus. Try SomeUnknownCOMObject.DoSomething() Catch Ex as COMExcpetion When Ex.ErrorCode = 4 ' The object was of the excpected type but he throwned ' an error with HRESULT 4, which is possible as the ' documentation of the object says (it's an exemple). MessageBox.Show("L'objet n'était pas prêt") ' Throw some new Application-Specific error. Throw new Exception ("The object was not ready.") Catch Ex as Exception ' Display some message MessageBox.Show("Une erreur inconnue s'est produite", "Erreur") ' But throw the (same) exception Throw Finally ' Quoi qu'il se passe, on fait cela ' Même si une erreur est survenue, ce code sera lancé Try : SomeUnkwnowCOMOBject.DoSomethingAnyWay() : Catch ex as Exception : End Try End Try

Exemplo de uso de LINQ

' Retourne un énumérateur qui renvoie tous les noms des fenêtres enfants qui sont des éditeurs de texte ' Visual Studio 2008 trouve le type de la variable automatiquement, similaire au "var" du C# Dim AllText = From CW in MyFormInstance.ChildWindows Where CW.GetType() is GetType(MyTextEditorWindow) Select CW.Text ' Crée un objet XML (un Document XML, pas une chaine de caractère) ' Visual Studio 2008 trouve le type de la variable automatiquement, similaire au "var" du C# Dim XMLDoc = _ <root><% For Each Item in Items %> <item name="<%= Item.Name %>" /> <% Next %></root> ' Sauvegarde dans un fichier le document XML XMLDoc.Save("FileName.xml")

Exemplo de um evento simples

' Déclaration des objets (fonctions, événements, ...) pour la fenêtre Form1 Public Class Form1 ' Lorsque l'utilisateur clique sur l'objet Button1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() ' On ferme la fenêtre parente (grâce à Me) donc l'application End Sub End Class

Exemplo de um código que chama uma função

Public Class Form1 ' Création de la fonction Quitter avec un Private Sub Private Sub Quitter() Me.Close() End Sub ' Lorsque l'utilisateur clique sur l'objet Button1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Call Quitter() ' On appelle Private Sub Quitter() End Sub ' Lorsque l'utilisateur clique sur l'objet Button2 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Call Quitter() ' L'avantage de ce code, c'est qu'on peut appeler Quitter() autant de fois que l'on souhaite End Sub End Class

Identidade visual

Veja também

Artigos relacionados

Notas e referências

  1. https://github.com/dotnet/roslyn/blob/1ff27b046b5c03abb38bfeda44eb82da0b8df9de/License.txt

links externos