18 · Módulos
C# · .NET
Integra funciones C# tipadas, objetos CLR, callbacks y llamadas asíncronas. Prepara con las herramientas .NET y conserva el runtime compatible al distribuir.
En esta página
Ejecuta localmente con el plugin y runtime correspondientes. Estos ejemplos no se ejecutan en el playground del navegador.
C# / .NET.
// expected:
// 42
// 9223372036854775807
// Zolo
// 11
// 12
// 42
// 40
// 42
use plugin dotnet::{csharp}
use std::async::Promise
extern csharp fn add(a: int, b: int) -> int {
return a + b;
}
extern csharp fn exact(value: int) -> int {
return value;
}
extern csharp fn counter(start: int) -> fn() -> int {
var value = start;
return () => System.Threading.Interlocked.Increment(ref value);
}
extern csharp fn apply(value: int, transform: fn(int) -> int) -> int {
return transform(value);
}
extern csharp async fn twice(value: int) -> int {
await System.Threading.Tasks.Task.Delay(10);
return value * 2;
}
print(add(20, 22))
print(exact(9223372036854775807))
let original = " Zolo "
let clean: str = extern csharp {
return original.Trim();
}
print(clean)
let next = counter(10)
print(next())
print(next())
print(apply(20) { |value| add(value, 22) })
let results = await Promise.all([twice(20), twice(21)])
print(results[0])
print(results[1])
Requiere la CLI o el host de Zolo; ábrelo en el playground o ejecútalo localmente.
Preparación y distribución
El empaquetado sin fuentes puede conservar artefactos externos preparados, pero no elimina dependencias de runtime o plataforma. Se cubre alojamiento en VM, native y LLVM; los bindings externos rechazan destinos WebAssembly no admitidos. La aceptación reciente cubre Windows x64. Python se verifica específicamente con CPython 3.12; otras plataformas requieren validación propia.
Consulta también