Repository navigation
RU CSharp Runtime
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Исходный код компилирует Roslyn. Скомпилированный сценарий выполняет обычный .NET 10/CoreCLR.
Статическое поле принадлежит типу и общее для его экземпляров в пределах одного выполнения. Здесь каждый запуск .csx, .cs или .csproj изолирует пользовательские типы и их static-поля; кэширование скомпилированного кода не сохраняет их между запусками. Статические данные общих библиотек .NET и хоста остаются общими: не храните в них данные конкретного персонажа.
В контролируемые операторы и циклы добавляются точки отмены. finally сохраняет освобождение ресурсов. Блокирующий сторонний вызов, который не поддерживает отмену, не превращается автоматически в отменяемый. Для длительного ожидания используйте WaitAsync, а для собственных асинхронных операций передавайте Cancellation.
Динамически скомпилированные сценарии имеют возможности обычного .NET-кода. Разрешения файла и игрового API определяются локальным процессом и выбранной сессией.
Запрос отмены кооперативен. Task.Delay без передачи Cancellation, ожидание сторонней задачи и библиотечный вызов без поддержки отмены могут продолжаться после нажатия Stop. После запроса отмены дальнейшие игровые действия этого выполнения запрещены; это не означает принудительного мгновенного завершения любого .NET-кода.
ClassicUO — Bad Newbie & C# Scripts IDE