C# Interativo (REPL)

Alguma vez você já pensou em testar aquele trecho de código sem precisar compilar toda a solução ?

Acho que este é um sonho de vários desenvolvedores. Será que dá para executar só aquele “pedacinho” do código ? Normalmente você tem que executar o codigo todo e fazer um braek point e depois rodar o debug sem parar, ou mais ainda, quem de nós que nunca criou um programa console só para testar um trecho de código ?

Bom, para acabar com este sofrimento, o Visual Studio introduz uma funcionalidade de C# interativo ou REPL (read-eval-print-loop), como é também conhecido, e que nada mais é do que um shell de execução interativa para a linguagem.

Vamos a um exemplo prático, mas você precisa ter o Visual Studio Update 1 ou Update 2, no meu caso estou com o Update 2.

Vou criar um programa Console em C# para trabalharmos com o exemplo, mas você pode executar em qualquer projeto C# ou VB:

image

Após criar a solução, vamos abrir o console interativo:

image

Feito isto, teremos o console na parte inferior da IDE do Visual Studio:

image

Aqui podemos fazer várias coisas, como por exemplo escrever um código qualquer, que será executado imediatamente, por exemplo:

image

Veja que eu criei uma lista e depois adicionei dois elementos. Ao final digitei “lista.Count” e o resultado está na tela! Simples assim!

Agora vamos imaginar que você já tenha um código e queira testá-lo no modo interativo. Mais simples ainda, basta selecionar o trecho do código e clicar com o botão direito do mouse, escolhendo a mesma opção “Execute in Interactive”:

image

O resultado será a mesma janela do modo interativo, mas com o seu código carregado:

image

Logicamente que códigos mais complexos também podem ser utilizados. Vamos então fazer um exemplo acessando um banco de dados de modo totalmente interativo:

> #r "System.Data.dll"
> using System.Data.SqlClient;
> var conexao = new SqlConnection("data source=(local); initial catalog=northwind; integrated security=true");
> conexao.Open();
> conexao.Database
"northwind"
> conexao.Close();
>

Na primeira linha estamos carregando a DLL System.Data para o contexto do compilador interativo e após isto temos o código para se conectar no SQL e por fim estou apenas mostrando o nome do banco de dados.

Acredito que agora vocês estão imaginando as possibilidades!!!

PAra complementar, neste link tem um guia várias informações interessantes que podem complementar seu estudo!

Abraços e até a próxima,
Carlos dos Santos.

Leave a Reply

Your email address will not be published. Required fields are marked *

Anti-spam: complete the taskWordPress CAPTCHA


This blog is kept spam free by WP-SpamFree.