Convertendo código VB.NET para CSharp


Será que é possível converte código VB.NET para código CSharp ? Não são todas as linguagens da plataforma .NET interoperáveis ?

Antes de responder diretamente a esta pergunta vou fazer outra : Por que alguém iria querer converter código VB.NET para C# ?

Agora vou responder a esta última :

Motivos para converter código VB.NET para C# :

  1. Você simplesmente não gosta do VB.NET da sintaxe da linguagem ; acha horrível a sintaxe do VB.NET é pronto ! Tudo bem gosto não se discute...
  2. As vezes o código VB.NET pode ser mais lento do que seu correspondente código C#.
  3. A linguagem VB.NET , apesar de todos os esforços e para manter certa compatibilidade com versões anteriores , ainda não é totalmente  tipada . O VB.NET não verifica em tempo de compilação variáveis declaradas que nunca serão usadas ; variáveis não inicializadas ; isto pode levar a  alguns problemas.  Quer ver ??? Execute o código abaixo e diga se estou certo ou errado...(Veja o resultado na tela ao lado do código).

Module Module1

   Sub Main()

      Dim j As String

      If j Is Nothing Then

         Console.WriteLine("A variável j é => Nothing")

      End If

 

     If j = "" Then

       Console.WriteLine("A variável j é => uma string vazia")

     End If

     Console.ReadLine()

End Sub

End Module

Bem , agora vou responder a primeira pergunta: É possível converter integralmente um código VB.NET para C# ?

Não , infelizmente não é possível escrever uma ferramenta que faça a conversão completa e sem problemas do VB.NET para C# simplesmente por que a sintaxe do VB.NET ainda permite ao programador VB.NET escrever código ambíguo. (dados do tipo objeto e arrays)

Alguns conselhos antes de você tentar efetuar a migração:

Com isto em mente , e , se você quer realmente ir em frente , pegue o código com o projeto fonte (em C#) aqui :  ConversorVBNET_C.zip

O conversor não é de minha autoria e eu não me responsabilizo por sua utilização nem dou suporte para sua utilização.

Se você quiser voltar atrás abaixo alguns em caso de você se arrepender :

  1. http://authors.aspalliance.com/aldotnet/examples/translate.aspx
  2. http://www.ragingsmurf.com/vbcsharpconverter.aspx
  3. http://www.kamalpatel.net/ConvertCSharp2VB.aspx

Até o próximo artigo...


José Carlos Macoratti