Atrybut (obliczeniowy)
Jeśli dany element można uznać za właściwość (CUSTOMER_NAME
) innej jednostki (powiedzmy CUSTOMER
), element ten może mieć zero lub więcej atrybutów (właściwości) własnych (CUSTOMER_NAME
jest z TYPE = "KINDOFTEXT"
).
C#Edit
W języku programowania C# atrybuty to metadane dołączone do pola lub bloku kodu, takie jak złożenia, członkowie i typy, i są odpowiednikiem adnotacji w Javie. Atrybuty są dostępne zarówno dla kompilatora, jak i programistycznie poprzez refleksję.
Użytkownicy języka widzą wiele przykładów, w których atrybuty są używane do rozwiązywania problemów przekrojowych i innych mechanistycznych lub platformowych zastosowań. Stwarza to fałszywe wrażenie, że jest to ich jedyny zamierzony cel.
Ich specyficzne użycie jako metadanych jest pozostawione programiście i może obejmować szeroki zakres typów informacji o dowolnej aplikacji, klasach i członkach, które nie są specyficzne dla instancji. Decyzja, aby ujawnić dany atrybut jako właściwość jest również pozostawiona deweloperowi, podobnie jak decyzja, aby użyć ich jako części większych ram aplikacji.
Atrybuty są zaimplementowane jako klasy, które pochodzą z System.Attribute
. Są one często używane przez usługi CLR, takie jak interoperacyjność COM, remoting, serializacja i mogą być odpytywane w trybie runtime.
Przykład pokazuje, jak atrybuty są definiowane w C#:
// causes compiler message sayingpublic class C {...} // that C is obsoletepublic 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) {...}}
Parametry pozycyjne, takie jak pierwszy parametr typu string powyżej, są parametrami konstruktora atrybutu. Parametry nazwy jak parametr Boolean w przykładzie są właściwością atrybutu i powinny być stałą wartością.
Atrybuty powinny być przeciwstawione dokumentacji XML, która również definiuje metadane, ale nie jest zawarta w skompilowanym zespole i dlatego nie może być dostępna programowo.
HTML & JavaScriptEdit
Wyświetlanie atrybutu checked i właściwości pola wyboru w miarę ich zmiany.
<!doctype html><html lang="en"><head><body><input name="food" type="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 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>
przed kliknięciemEdit
.attr( 'checked' ): checked.prop( 'checked' ): false.is( ':checked' ): false
po kliknięciuEdit
.attr( 'checked' ): checked.prop( 'checked' ): true.is( ':checked' ): true
Wielowartościowe bazy danychEdit
W wielu systemach post-relacyjnych lub wielowartościowych baz danych, w stosunku do SQL, tabele są plikami, wiersze są elementami, a kolumny atrybutami. Zarówno w bazie danych, jak i w kodzie, atrybut jest synonimem właściwości i zmiennej, chociaż atrybuty mogą być dalej zdefiniowane, aby zawierać wartości i podwartości.
Pierwszą z tych baz danych był system operacyjny Pick. Dwie obecne platformy to Universe firmy Rocket U2 i Caché firmy InterSystems.
XMLEdit
W XML atrybut jest konstrukcją znacznika składającą się z pary nazwa/wartość, która istnieje wewnątrz znacznika start-tag lub znacznika empty-element. Języki znaczników, takie jak HTML i XML, używają atrybutów do opisywania danych i ich formatowania.
Dobrym przykładem jest proces przypisywania przez XML wartości do właściwości (elementów). Zauważ, że wartość elementu znajduje się przed (osobnym) znacznikiem end, a nie w samym elemencie. Sam element może mieć ustawioną pewną liczbę atrybutów (NAME = "IAMAPROPERTY"
).
Jeśli dany element można uznać za właściwość (CUSTOMER_NAME
) innej jednostki (powiedzmy CUSTOMER
), element może mieć zero lub więcej atrybutów (właściwości) własnych (CUSTOMER_NAME
jest z TYPE = "KINDOFTEXT"
).