Skip to content

CSharp Runtime

Codex edited this page Oct 11, 2026 · 3 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

Двигун C#-скриптів

Вихідний код компілює Roslyn. Скомпільований сценарій виконує звичайний .NET 10/CoreCLR.

Статичне поле належить типу й спільне для його екземплярів під час одного виконання. Тут кожен запуск .csx, .cs або .csproj ізолює користувацькі типи та їхні static-поля; кешування скомпільованого коду не зберігає їх між запусками. Статичні дані спільних бібліотек .NET і хоста залишаються спільними: не зберігайте в них дані конкретного персонажа.

У контрольовані оператори та цикли додаються точки скасування. finally зберігає звільнення ресурсів. Блокуючий сторонній виклик, який не підтримує скасування, не перетворюється автоматично на скасований. Для тривалого очікування використовуйте WaitAsync, а для власних асинхронних операцій передавайте Cancellation.

Динамічно скомпільовані сценарії мають можливості звичайного .NET-коду. Дозволи файлу та ігрового API визначаються локальним процесом та обраною сесією.

Запит скасування кооперативний. Task.Delay без передачі Cancellation, очікування стороннього завдання та бібліотечний виклик без підтримки скасування можуть продовжуватися після натискання Stop. Після запиту про скасування подальші ігрові дії цього виконання заборонені; це означає примусового миттєвого завершення будь-якого .NET-коду.

Clone this wiki locally