Тип
Стд::Тип<ТипЗначения>
Характеристика значения, определяющая свойства, методы, поведение, которыми обладают значения данного типа.
Сравнение
Структурное
Иерархия типа
Базовые типы: Объект, Представляемое
Литералы
Синтаксис: Тип<ИмяТипа>
Примеры
знч ТипЧисла = Тип<Число>
знч ТипСтроки = Тип<Стд::Строка>
Свойства
БазовыеТипы
ТолькоЧтение
БазовыеТипы: ЧитаемыйМассив<Тип>Типы, являющиеся базовыми для текущего.
пер БазовыеТипы: Объект?
БазовыеТипы = Тип<Число>.БазовыеТипы // [Тип<Сравнимое<Число>>, Тип<Форматируемое>]
БазовыеТипы = Тип<Сравнимое<Число>>.БазовыеТипы // [Тип<Объект>]
БазовыеТипы = Тип<Форматируемое>.БазовыеТипы // [Тип<Представляемое>]
БазовыеТипы = Тип<Представляемое>.БазовыеТипы // [Тип<Объект>]
Имя
ТолькоЧтение
Имя: ПолноеДвуязычноеИмяВозвращает краткое имя типа (без пространства имен).
Пример: "Строка".
ПараметрыТипа
ТолькоЧтение
ПараметрыТипа: ЧитаемыйМассив<ЧитаемоеМножество<Тип>>Набор параметров типа для обобщенных типов. Для простых типов массив всегда пуст.
Примеры
знч ПараметрыТипаДляСоответствия = Тип<Соответствие<Строка|Число, Булево|ДатаВремя>>
Переменная ПараметрыТипаДляСоответствия будет содержать массив из 2 элементов типа Множество, по числу параметров типа Соответствие
Множество 1 (параметр типа "Ключ") будет содержать 2 элемента:
- Строка
- Число
Множество 2 (параметр типа "Значение") будет содержать 2 элемента:
- Булево
- ДатаВремя
Методы
ВСтроку
ВСтроку(): Строка"Std::String".
Переопределение
Объект::ВСтроку
МожетБытьПрисвоенВ
МожетБытьПрисвоенВ(Тип: ЧитаемаяКоллекция<Тип>|Тип): БулевоТип (или массива типов для составного типа).
Тип<Число>.МожетБытьПрисвоенВ(Тип<Форматируемое>) // Истина
Тип<Число>.МожетБытьПрисвоенВ(Тип<Строка>) // Ложь
Тип<Массив<Число>>.МожетБытьПрисвоенВ(Тип<Массив<Объект>>) // Ложь
Тип<Массив<Число>>.МожетБытьПрисвоенВ(Тип<ЧитаемыйМассив<Объект>>) // Истина
Тип<Массив<Число>>.МожетБытьПрисвоенВ(Тип<ЧитаемаяКоллекция<Объект>>) // Истина
ПоИмени
<ValueType это Перечисление> ПоИмени(Имя: Строка): ТипЗначенияИсключения
- ИсключениеНедопустимыйАргумент — если элемента перечисления с таким именем не существует.
Примеры
Динамическое получение элемента перечисления по полному имени типа перечисления и имени элемента
Тип<НаправлениеСортировки>.ПоИмени("ПоВозрастанию")
ПолучитьСвойства
ПолучитьСвойства(): ЧитаемоеМножество<ОтражениеСвойства>Примеры
null
ПолучитьСвойство
ПолучитьСвойство(Имя: Строка): ОтражениеСвойстваИсключения
- ИсключениеОтражения — не удалось найти свойство по имени
ПолучитьЭкземпляр
<ValueType это Одиночка> ПолучитьЭкземпляр(): ТипЗначенияПредставление
Представление(): Строка"Строка".
Переопределение
Представляемое::Представление
СоздатьЭкземпляр
СоздатьЭкземпляр(Аргументы: ЧитаемыйМассив<Объект?>): ТипЗначенияИсключения
- ИсключениеОтражения — не удалось найти подходящий конструктор по сигнатуре параметров
Перегрузка
СоздатьЭкземпляр(Аргументы: ЧитаемоеСоответствие<Строка, Объект?>): ТипЗначения
Примеры
метод ЗагрузитьИзJson(ИмяТипа: Строка, ДанныеВJson: ЧитаемоеСоответствие<Строка, Объект?>): Объект?
знч ТипОбъекта = НайтиТип(ИмяТипа)
знч Объект = ТипОбъекта.СоздатьЭкземпляр([]) как неизвестно
для СвойствоJson из ДанныеВJson
Объект[СвойствоJson.Ключ] = СвойствоJson.Значение
;
возврат Объект
;
СоздатьЭкземпляр
СоздатьЭкземпляр(Аргументы: ЧитаемоеСоответствие<Строка, Объект?>): ТипЗначенияИсключения
- ИсключениеОтражения — не удалось найти подходящий конструктор по сигнатуре параметров
Перегрузка
СоздатьЭкземпляр(Аргументы: ЧитаемыйМассив<Объект?>): ТипЗначения
Примеры
метод ЗагрузитьИзJson(ИмяТипа: Строка, ДанныеВJson: ЧитаемоеСоответствие<Строка, Объект?>): Объект?
знч ТипОбъекта = НайтиТип(ИмяТипа)
// Тут рассчитываем, что у типа есть конструктор с именами параметров, как в ключах соответствия
возврат ТипОбъекта.СоздатьЭкземпляр(ДанныеВJson)
;
Элементы
<ValueType это Перечисление> Элементы(): Массив<ТипЗначения>