Перфолента.NET. ООП. Атрибуты элементов программы — различия между версиями
Дизайнер (обсуждение | вклад) (Новая страница: « Категория:Перфолента.NET. Описание языка Перфолента.NET Категория:Перфолента.NET. Объек…») |
Дизайнер (обсуждение | вклад) м |
||
Строка 1: | Строка 1: | ||
+ | В языке [[Перфолента.Net]] можно привязать к элементам программы дополнительную информацию, которая придаст им дополнительный смысл, особое назначение или особые правила использования. | ||
+ | |||
+ | В языке Перфолента, как и в других .Net языках, атрибуты элементов программы используются как на стадии компиляции, так и на стадии выполнения. Это значит, что как компилятор может внести изменения в генерируемый машинный код основываясь на атрибутах, так и выполняющаяся программа может менять своё поведение в зависимости от атрибутов выполняемого кода. | ||
+ | |||
+ | Процесс получения атрибутов сборки и других элементов программы называется рефлексией (reflection). | ||
+ | |||
+ | == Виды атрибутов == | ||
+ | Итак, '''Атрибуты''' могут влиять на: | ||
+ | * сборку (компиляцию) программы | ||
+ | * выполнение кода программы | ||
+ | |||
+ | Атрибуты могут быть определены | ||
+ | * в платформе NET | ||
+ | * в Языке Перфолента | ||
+ | * могут быть определены программистом | ||
+ | |||
+ | Часть используемых вами атрибутов определена прямо в языке Перфолента (в стандартной библиотеке ??), это: | ||
+ | * видимости (ВидноВсем), | ||
+ | * наследования, | ||
+ | * переопределения методов | ||
+ | * и другие (ТолькоДляЧтения). | ||
+ | |||
+ | С каждым из них мы познакомимся чуть позже. | ||
+ | |||
+ | Некоторые атрибуты определены в библиотеке Net Framework и могут использоваться компиляторами любых .Net языков. | ||
+ | |||
+ | Другие атрибуты определены в стандартной библиотеке Перфоленты и могут использоваться компилятором Перфоленты и программами, использующими эту библиотеку. | ||
+ | |||
+ | А некоторые атрибуты будут определены Вами в вашей программе и использовать их будете только Вы. | ||
+ | |||
+ | Важно: в языке 1С, как и в некоторых других языках программирования, '''атрибуты''' называют '''аннотациями'''. В разных языках синтаксис записи атрибутов (аннотаций) различен, как и способы их использования, но в большинстве современных языков они в том или ином виде есть. | ||
+ | |||
+ | == Устройство атрибута == | ||
+ | |||
+ | Технически, атрибуты — это специальные классы, унаследованные от класса Атрибут, который в .Net соответствует классу System.Attribute. | ||
+ | Атрибуты могут что-то значить сами по себе или иметь конструктор, принимающий на хранение дополнительную информацию в виде параметров. Типы параметров конструктора атрибута, а также полей и свойств, ограничены в .Net следующими типами: | ||
+ | Цел8, Цел32, Цел64, Байт, Бит32, Бит64, Вещ, ДВещ, Строка, Символ, Булево, Тип, | ||
+ | а также это может быть Перечисление одного из указанных типов. | ||
+ | К сожалению, платформа .Net не поддерживает тип Дата в качестве параметра атрибута, но при необходимости дату (как и другие сериализуемые типы) можно представлять строкой. | ||
[[Категория:Перфолента.NET. Описание языка Перфолента.NET]] | [[Категория:Перфолента.NET. Описание языка Перфолента.NET]] | ||
[[Категория:Перфолента.NET. Объектно-Ориентированное Программирование]] | [[Категория:Перфолента.NET. Объектно-Ориентированное Программирование]] |
Версия 13:41, 12 ноября 2020
В языке Перфолента.Net можно привязать к элементам программы дополнительную информацию, которая придаст им дополнительный смысл, особое назначение или особые правила использования.
В языке Перфолента, как и в других .Net языках, атрибуты элементов программы используются как на стадии компиляции, так и на стадии выполнения. Это значит, что как компилятор может внести изменения в генерируемый машинный код основываясь на атрибутах, так и выполняющаяся программа может менять своё поведение в зависимости от атрибутов выполняемого кода.
Процесс получения атрибутов сборки и других элементов программы называется рефлексией (reflection).
Виды атрибутов
Итак, Атрибуты могут влиять на:
- сборку (компиляцию) программы
- выполнение кода программы
Атрибуты могут быть определены
- в платформе NET
- в Языке Перфолента
- могут быть определены программистом
Часть используемых вами атрибутов определена прямо в языке Перфолента (в стандартной библиотеке ??), это:
- видимости (ВидноВсем),
- наследования,
- переопределения методов
- и другие (ТолькоДляЧтения).
С каждым из них мы познакомимся чуть позже.
Некоторые атрибуты определены в библиотеке Net Framework и могут использоваться компиляторами любых .Net языков.
Другие атрибуты определены в стандартной библиотеке Перфоленты и могут использоваться компилятором Перфоленты и программами, использующими эту библиотеку.
А некоторые атрибуты будут определены Вами в вашей программе и использовать их будете только Вы.
Важно: в языке 1С, как и в некоторых других языках программирования, атрибуты называют аннотациями. В разных языках синтаксис записи атрибутов (аннотаций) различен, как и способы их использования, но в большинстве современных языков они в том или ином виде есть.
Устройство атрибута
Технически, атрибуты — это специальные классы, унаследованные от класса Атрибут, который в .Net соответствует классу System.Attribute. Атрибуты могут что-то значить сами по себе или иметь конструктор, принимающий на хранение дополнительную информацию в виде параметров. Типы параметров конструктора атрибута, а также полей и свойств, ограничены в .Net следующими типами: Цел8, Цел32, Цел64, Байт, Бит32, Бит64, Вещ, ДВещ, Строка, Символ, Булево, Тип, а также это может быть Перечисление одного из указанных типов. К сожалению, платформа .Net не поддерживает тип Дата в качестве параметра атрибута, но при необходимости дату (как и другие сериализуемые типы) можно представлять строкой.