18 · Módulos
C# · .NET
Integre funções C# tipadas, objetos CLR, callbacks e chamadas assíncronas. Prepare com as ferramentas .NET e mantenha o runtime compatível na distribuição.
Nesta página
Execute localmente com o plugin e runtime correspondentes. Estes exemplos não rodam no playground do 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])
Requer a CLI/host do Zolo — abra no playground ou rode localmente.
Preparação e distribuição
O empacotamento sem fontes pode preservar artefatos estrangeiros preparados, mas não remove dependências de runtime ou plataforma. Hospedagem na VM, native e LLVM está coberta; bindings estrangeiros rejeitam alvos WebAssembly não suportados. A aceitação recente dos providers cobre Windows x64. Python está verificado especificamente com CPython 3.12; outras plataformas precisam de validação própria.