CSharpRepl es una herramienta que nos permite ejecutar código C# de forma interactiva en una consola REPL (Read-Eval-Print Loop).
CSharpRepl proporciona una consola interactiva donde puedes escribir y ejecutar fragmentos de código C# en tiempo real. Es decir… ¿sabes el intérprete de Python o Nodejs? Pues es algo así para C#.
Esta herramienta es muy útil para realizar pruebas rápidas, experimentar con nuevas ideas y depurar código sin necesidad de compilar y ejecutar una aplicación completa.
Principales características,
- Interactividad: Permite ejecutar código C# en tiempo real, facilitando la prueba y experimentación.
- Evaluación Inmediata: Inmediatamente evalúa y muestra los resultados del código ejecutado.
- Depuración: Útil para depurar fragmentos de código sin necesidad de compilar toda la aplicación.
- Exploración de APIs: Facilita la exploración de nuevas APIs y bibliotecas de forma rápida y eficiente.
Algo que, en mi opinión, debería dar el propio Microsoft. Pero oye, como están en la pájara pues… ¡la comunidad la rescate!
Para más información y detalles sobre cómo utilizar CSharpRepl, visita el repositorio en GitHub. Aquí encontrarás documentación adicional, ejemplos de uso y actualizaciones sobre esta herramienta.
Instalación y Configuración
Puedes instalar CSharpRepl globalmente en tu sistema utilizando la CLI de .NET:
dotnet tool install --global CSharpRepl
- Verificar la Instalación
Una vez instalado, verifica la instalación ejecutando el siguiente comando en tu terminal:
csharprepl
Deberías ver una consola interactiva de CSharpRepl lista para aceptar comandos.
Integrar con Windows Terminal
En general, la forma preferida de usar C# Repl es a Windows Tterminal, como cualquier otro intérprete de comando. Para ello hay que añadir en el fichero de configuración. Nos vamos a “Opciones” y abajo a la izquierda aparece “Abrir Archivo Json”.
Allí en la colección profiles\list
añadimos este
"profiles":
{
...
"list":
[
...
{
"commandline": "csharprepl",
"guid": "{70e71a3e-0518-52f7-81fe-565defc69fe7}",
"name": "C# REPL"
}
]
Ahora, desde Windows Terminal, nos aparece C# Repl en el desplegable de opciones.
Cómo Usar CSharpRepl
Ejecutar Código C#
En la consola de CSharpRepl, puedes escribir cualquier fragmento de código C# y obtener resultados inmediatos. Aquí hay algunos ejemplos básicos:
Imprimir un Mensaje
Console.WriteLine("Hola, CSharpRepl!");
Declarar y Usar Variables
int x = 10;
int y = 20;
Console.WriteLine(x + y);
Definir y Llamar Métodos
int Sumar(int a, int b)
{
return a + b;
}
Console.WriteLine(Sumar(5, 7));
Uso Avanzado
CSharpRepl también permite el uso de características más avanzadas de C#, como la creación de clases, uso de LINQ, y trabajo con bibliotecas externas.
Crear una Clase
class Persona
{
public string Nombre { get; set; }
public int Edad { get; set; }
}
var persona = new Persona { Nombre = "Luis", Edad = 30 };
Console.WriteLine($"Nombre: {persona.Nombre}, Edad: {persona.Edad}");
Usar LINQ
var numeros = new List<int> { 1, 2, 3, 4, 5 };
var pares = numeros.Where(n => n % 2 == 0);
foreach (var par in pares)
{
Console.WriteLine(par);
}
Cargar y Usar Bibliotecas Externas
Puedes cargar ensamblados y usar bibliotecas externas directamente en la consola REPL. Por ejemplo, para usar una biblioteca de JSON:
#r "path/to/Newtonsoft.Json.dll"
using Newtonsoft.Json;
var json = JsonConvert.SerializeObject(new { Nombre = "Luis", Edad = 30 });
Console.WriteLine(json);
O paquetes nuget
#r "nuget: Dumpify "
using Newtonsoft.Json;
var json = JsonConvert.SerializeObject(new { Nombre = "Luis", Edad = 30 });
Console.WriteLine(json);
Lanzar ficheros CSX
También podemos crear ficheros .csx
con una serie de instrucciones o script para ejecutar de forma secuencial. Por ejemplo,
var a = 2 + 2;
Console.WriteLine(a);
Ahora para ejecutarlo simplemente hacemos
csharprepl tu_fichero.csx
y C# Repl ejecutará todas las líneas de una en una.