/
smwwiki
/
OneScript_fork
Обзор
Документация
Войти
/
smwwiki
/
OneScript_fork
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/OneScript.StandardLibrary/Text/ConsoleProvider.cs
53 строки
2 KB
EvilBeaver
Обобщение символов компиляции
24 дек 2021, 10:44
24 дек 2021, 10:44
5884a74
Код
Авторство
О чём код?
/*---------------------------------------------------------- This Source Code Form is subject to the terms of the Mozilla Public License, v.2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ using System; using OneScript.Contexts; using ScriptEngine.Machine; using ScriptEngine.Machine.Contexts; namespace OneScript.StandardLibrary.Text { [GlobalContext(Category = "Работа с консолью")] public class ConsoleProvider : GlobalContextBase<ConsoleProvider> { private readonly ConsoleContext _console = new ConsoleContext(); private ConsoleProvider() { } public override void OnAttach(out IVariable[] variables, out BslMethodInfo[] methods) { variables = new [] {Variable.CreateContextPropertyReference(this, 0, GetPropName(0))}; methods = Array.Empty<BslMethodInfo>(); } [ContextProperty("Консоль", "Console")] public ConsoleContext Console => _console; public override bool IsPropWritable(int propNum) { // обратная совместимость. Присваивание Консоль = Новый Консоль не должно ругаться на недоступность записи return true; } public override void SetPropValue(int propNum, IValue newVal) { // обратная совместимость. Присваивание Консоль = Новый Консоль не должно ничего делать if (!ReferenceEquals(newVal.GetRawValue(), _console)) { throw new InvalidOperationException("Can't assign to global property Console"); } } public static ConsoleProvider CreateInstance() { return new ConsoleProvider(); } } }