Примеры по стандартной библиотеке
Пример программы на языке программирования Перфолента.Net:
- Глобальный модуль
- Метод Выполнить.пфл
// Этот пример написан на языке программирования Перфолента.Net
// для демонстрации использования метода Выполнить,
// который находится в глобальном модуле стандартной библиотеки
#ТипСборки КонсольноеПриложение
#ИспользоватьСтандартнуюБиблиотеку
ИмпортИмён Промкод.Перфолента.Консоль
//***************************
// Атрибут ВидноВсем нужен здесь для того, что бы код компилируемый в методе Выполнить
// видел методы этой программы и мог их вызвать!
&ВидноВсем
Программа ТестМетодаВыполнить
//---------------------------
// Этот метод мы будем вызывать из кода передаваемого методу Выполнить
&ВидноВсем
Функция Представление(Ф тип Строка) тип Строка
Возврат "Это "+Ф
КонецФункции
//---------------------------
Процедура Старт
ПосчитатьСборки
Попытка
инт = Новый ИнтервалВремени
А = 100;
Б = 200;
// Этот объект мы передадим в качестве параметра методу Выполнить
Васечкин = Новый Человек("Васечкин")
ИсходныйКод = @"
ВыводСтроки ТестМетодаВыполнить.Представление("Вася")
ВыводСтроки Человек.Представление("Петя")
ВыводСтроки "Лев(2+2*7,1) = "+Лев(2+2*7,1)
ВыводСтроки "А+Б = "+(А+Б)
"@
// Что бы использовать типы из этой программы - загрузим её сборку...
Выполнить(ИсходныйКод, Новый Структура("А,Б,Человек", А, Б, Васечкин), {ЭтаПрограмма.ИмяСборки})
ВыводСтроки "Время, млс: "+инт.ВсегоМиллисекунд
ВыводСтроки
//количество сборок увеличится больше, чем на одну, т.к. выше приведенный код
//загружает стандартную библиотеку и все необходимые ей сборки
ПосчитатьСборки
//повтор кода, что бы убедиться, что количество сборок не увеличится,
//если методу Выполнить передаётся точно такой же искодный код
инт = Новый ИнтервалВремени
А = 100;
Б = 200;
Петров = Новый Человек("Петров")
Выполнить(ИсходныйКод, Новый Структура("А,Б,Человек", А, Б, Петров), {ЭтаПрограмма.ИмяСборки})
ВыводСтроки "Время, млс: "+инт.ВсегоМиллисекунд
ВыводСтроки
ПосчитатьСборки
// Запустим один и тот же код в методе Выполнить три раза,
// что бы убедиться, что повторные вызовы выполняются на много быстрее...
Цикл 3
инт = Новый ИнтервалВремени
А = 100;
Б = 200;
Выполнить(@"
ВыводСтроки "Лев(2+2*7,1) = "+Лев(2+2*7,1)
ВыводСтроки "А+Б = "+(А+Б)
"@, Новый Структура("А,Б", А, Б))
ВыводСтроки "Время, млс: "+инт.ВсегоМиллисекунд
ВыводСтроки
ПосчитатьСборки
КонецЦикла
Исключение Ош
ВыводСтроки Ош.ОписаниеОшибки()
КонецПопытки
Пауза
КонецПроцедуры
//---------------------------
Процедура ПосчитатьСборки
ВыводСтроки "Кво сборок = "+ЭтаПрограмма.ЗагруженныеСборки().Количество
КонецПроцедуры
КонецПрограммы
//***************************
&ВидноВсем
Класс Человек
Поле _Фамилия тип Строка
//---------------------------
&ВидноВсем
Конструктор(пФамилия тип Строка)
_Фамилия = пФамилия
КонецКонструктора
&ВидноВсем
Функция Представление(Имя тип Строка) тип Строка
Возврат "Это " + Имя + " " + _Фамилия
КонецФункции
КонецКласса
К началу статьи
Вернуться в раздел:
Примеры по стандартной библиотеке
Перейти в раздел:
Примеры