Será que é possível converte código VB.NET para código C#? 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# :
- Você simplesmente não gosta do VB.NET e da sintaxe da linguagem; acha horrível a sintaxe do VB.NET e pronto! Tudo bem, gosto não se discute.
- As vezes o código VB.NET pode ser mais lento do que seu correspondente código C#.
- 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 final 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:
- Procure migrar somente código VB.NET robusto e que esteja funcionando;
- Muitas vezes você terá que mudar alguma coisa no seu código VB.NET antes de fazer a migração;
- Use Option Strict on e Option Compare Binary;
- O tratamento de erro clássico: On error não é suportado no C#;
- Modules não são suportados, mas classes Friend que possuírem somente métodos Shared podem substituí-los;
- Altere Select Case com condições e filtros de exceçã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!








