Saltar al contenido

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.

14-extern-csharp.zolo
Playground
// 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.

Vista general de la referencia

Índice global

Encuentra tu camino por Zolo

Prueba una idea

Empieza aquí

9 resultados

9 resultados

enespt-br