Pular para o conteúdo

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.

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])

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.

Visão geral da referência

Índice global

Encontre seu caminho pela Zolo

Experimente uma ideia

Comece por aqui

9 resultados

9 resultados

enespt-br