Атрибут (вычисление)
Эта статья нуждается в дополнительных цитатах для проверки . ( январь 2022 г. ) |


В вычислениях атрибут — это спецификация , определяющая свойство объекта , элемента или файла. Он также может ссылаться или устанавливать конкретное значение для данного экземпляра. Для ясности атрибуты правильнее считать метаданными . Атрибут часто и обычно является свойством свойства. Однако в реальном использовании термин «атрибут» может рассматриваться и часто рассматривается как эквивалент свойства в зависимости от обсуждаемой технологии. Атрибут объекта обычно состоит из имени и значения. Для элемента это могут быть имя типа и класса, а для файла — имя и расширение соответственно.
Правила и типирование [ править ]
- Правила: Каждый именованный атрибут имеет связанный набор правил, называемых операциями : например, нельзя суммировать символы или манипулировать и обрабатывать целочисленный массив так же, как объект изображения. Никто не обрабатывает текст так, как если бы он был типом с плавающей запятой ( десятичные числа ).
- Типы данных: Отсюда следует, что определение объекта может быть расширено путем введения типа данных , который может состоять из формата представления, значения по умолчанию, а также допустимых операций (правил) и ограничений (например, «деление на ноль недопустимо»). все они потенциально участвуют в определении атрибута, или, наоборот, их можно рассматривать как атрибуты типа этого объекта.
Форматы файлов изображений (например, JPEG , PNG и BMP ) не декодируются с использованием одних и тех же операций (как бы похожи ни были изображения — все это форматы графических данных). Аналогично, язык программирования не использует одни и те же операции для вычисления чисел с плавающей запятой и типизированных длинных целых чисел.
Например, в компьютерной графике линейные объекты могут иметь такие атрибуты, как толщина (с реальными значениями), цвет (с описательными значениями, такими как коричневый или зеленый, или значения, определенные в определенной цветовой модели, такой как RGB), атрибуты пунктирной линии и т. д. Объект-круг может быть определен с использованием аналогичных атрибутов, а также начала координат и радиуса. Применительно к компьютерным системам атрибуты определяются, в частности, для чтения или записи, атрибуты для конкретного чтения или записи.
Использование атрибута [ править ]
Если бы рассматриваемый элемент можно было считать свойством ( CUSTOMER_NAME
) другой сущности (скажем, CUSTOMER
), элемент может иметь ноль или более собственных атрибутов (свойств) ( CUSTOMER_NAME
имеет TYPE = "KINDOFTEXT"
).
С# [ править ]
В языке программирования C# атрибуты — это метаданные, прикрепленные к полю или блоку кода, такие как сборки , члены и типы , и эквивалентны аннотациям в Java . Атрибуты доступны как компилятору, так и программно посредством отражения . Напротив, свойства в терминологии C# являются членами класса, которые синтаксически используются как переменные экземпляра (или класса), но реализованы как пара функций получения/установки. (При отсутствии установщика свойства доступны только для чтения.)
Пользователи языка видят множество примеров, когда атрибуты используются для решения сквозных задач и других механизмов или платформ. Это создает ложное впечатление, что это их единственная цель.
Их конкретное использование в качестве метаданных остается на усмотрение разработчика и может охватывать широкий спектр типов информации о любом данном приложении, классах и членах, не зависящих от конкретного экземпляра. Решение предоставить тот или иной атрибут как свойство также остается за разработчиком, как и решение использовать его как часть более крупной платформы приложения.
Атрибуты реализованы как классы, производные от System.Attribute
. Они часто используются службами CLR , такими как совместимость COM , удаленное взаимодействие , сериализация , и могут быть запрошены во время выполнения.
В примере показано, как атрибуты определяются в C#:
[Obsolete("Use class C1 instead", IsError = true)] // causes compiler message saying
public class C {...} // that C is obsolete
public class ObsoleteAttribute : Attribute { // class name ends with "Attribute"
public string Message { get; } // but can be used as "Obsolete"
public bool IsError { get; set; }
public ObsoleteAttribute() {...}
public ObsoleteAttribute(string msg) {...}
public ObsoleteAttribute(string msg, bool error) {...}}
[Obsolete]
[Obsolete("This is obsolete")]
[Obsolete("This is obsolete", false)]
[Obsolete("This is obsolete", IsError = false)]
Позиционные параметры, такие как первый параметр строки типа выше, являются параметрами конструктора атрибута. Параметры имени, такие как логический параметр в примере, являются свойством атрибута и должны иметь постоянное значение. [1]
Атрибуты следует сопоставлять с документацией XML, которая также определяет метаданные, но не включена в скомпилированную сборку и, следовательно, не может быть доступна программно.
HTML и JavaScript [ править ]
Отображение атрибута «проверено» и свойства флажка по мере его изменения.
<!doctype html>
<html lang="en">
<head>
<body>
<input name="food" type="meal" id="meal">
<meta charset="utf-8">
<title>attr demo</title>
<style>
p { border;1px solid black;
font-family; arial, sans-serif;
text-align center;
}
b {
color: blue;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<input id="check1" type="checkbox" checked="checked">
<label for="check1">Check me</label>
<p></p>
<script>
$( "input" )
.change(function() {
var $input = $( this );
$( "p" ).html( ".attr( 'checked' ): <b>" + $input.attr( "checked" ) + "</b><br>" +
".prop( 'checked' ): <b>" + $input.prop( "checked" ) + "</b><br>" +
".is( ':checked' ): <b>" + $input.is( ":checked" ) + "</b>" );
})
.change();
</script>
</body>
</html>
прежде чем нажать [ изменить ]
.attr( 'checked' ): checked
.prop( 'checked' ): false
.is( ':checked' ): false
после нажатия [ изменить ]
.attr( 'checked' ): checked
.prop( 'checked' ): true
.is( ':checked' ): true
Многозначные базы данных [ править ]
Во многих постреляционных или многозначных системах баз данных, относительно SQL, таблицы представляют собой файлы, строки — это элементы, а столбцы — атрибуты. Как в базе данных, так и в коде атрибут является синонимом свойства и переменной, хотя атрибуты можно дополнительно определить так, чтобы они содержали значения и подзначения.
Первой из таких баз данных стала операционная система Pick . Две текущие платформы включают Universe Rocket U2 и Caché от InterSystems .
XML [ править ]
В XML атрибут — это конструкция разметки , состоящая из пары имя/значение, которая существует внутри тега начального тега или тега пустого элемента . Языки разметки, такие как HTML и XML , используют атрибуты для описания данных и их форматирования.
Хорошим примером является процесс присвоения значений свойствам (элементам) XML. Обратите внимание, что значение элемента находится перед (отдельным) закрывающим тегом, а не в самом элементе. Сам элемент может иметь ряд установленных атрибутов ( NAME = "IAMAPROPERTY"
).
Если бы рассматриваемый элемент можно было считать свойством ( CUSTOMER_NAME
) другой сущности (скажем, CUSTOMER
), элемент может иметь ноль или более собственных атрибутов (свойств) ( CUSTOMER_NAME
имеет TYPE = "KINDOFTEXT"
).
См. также [ править ]
- Пара атрибут-значение
- Атрибут файла
- Расширенные атрибуты файла
- Область (информатика)
- Свойство (программирование)
- Java-аннотация
- Метаданные
Ссылки [ править ]
- ^ Мессенбёк, Ханспетер (25 марта 2002 г.). «Расширенный C#: переменное количество параметров» (PDF) . Институт системного программного обеспечения, Университет Иоганна Кеплера в Линце, факультет компьютерных наук. п. 44 . Проверено 8 августа 2011 г.