Attribut (computing)
Hvis det pågældende element kan betragtes som en egenskab (CUSTOMER_NAME
) af en anden enhed (lad os sige CUSTOMER
), kan elementet have nul eller flere attributter (egenskaber) af sin egen art (CUSTOMER_NAME
er af TYPE = "KINDOFTEXT"
).
C#Edit
I programmeringssproget C# er attributter metadata, der er knyttet til et felt eller en kodeblok som assemblies, medlemmer og typer, og svarer til annotationer i Java. Attributter er tilgængelige for både compileren og programmatisk gennem refleksion.
Brugere af sproget ser mange eksempler, hvor attributter bruges til at løse tværgående problemer og andre mekanistiske eller platformsmæssige anvendelser. Dette giver det falske indtryk, at dette er deres eneste tilsigtede formål.
Deres specifikke brug som metadata overlades til udvikleren og kan dække en lang række typer af oplysninger om et givet program, klasser og medlemmer, som ikke er instansspecifikke. Beslutningen om at eksponere en given attribut som en egenskab er også overladt til udvikleren, ligesom beslutningen om at bruge dem som en del af en større applikationsramme.
Attributter implementeres som klasser, der er afledt af System.Attribute
. De bruges ofte af CLR-tjenesterne, f.eks. COM-interoperabilitet, remoting, serialisering, og kan forespørges på køretid.
Eksemplet viser, hvordan attributter defineres i 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) {...}}
Positionelle parametre som første parameter af typen string ovenfor er parametre for attributtens konstruktør. Navneparametre som den boolske parameter i eksemplet er en egenskab ved attributten og bør være en konstant værdi.
Attributter skal sammenholdes med XML-dokumentation, der også definerer metadata, men som ikke er inkluderet i den kompilerede samling og derfor ikke kan tilgås programmatisk.
HTML & JavaScriptEdit
Vis den markerede attribut og egenskab for en afkrydsningsboks, når den ændres.
<!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>
før klikRediger
.attr( 'checked' ): checked.prop( 'checked' ): false.is( ':checked' ): false
efter klikRediger
.attr( 'checked' ): checked.prop( 'checked' ): true.is( ':checked' ): true
Flerværdi-databaserRediger
På mange post-relationelle eller flerværdi-databasesystemer, i forhold til SQL, er tabeller filer, rækker er elementer og kolonner er attributter. Både i databasen og i koden er attribut synonymt med egenskab og variabel, selv om attributter kan defineres yderligere til at indeholde værdier og underværdier.
Den første af disse databaser var Pick-operativsystemet. To aktuelle platforme omfatter Rocket U2’s Universe og InterSystems’ Caché.
XMLEdit
I XML er en attribut en markup-konstruktion bestående af et navn/værdi-par, der findes inden for et start-tag eller et tomt-element-tag. Udmærkningssprog, såsom HTML og XML, bruger attributter til at beskrive data og formateringen af data.
Et godt eksempel er den proces, hvor XML tildeler værdier til egenskaber (elementer). Bemærk, at elementets værdi findes før det (separate) end-tag og ikke i selve elementet. Selve elementet kan have et antal attributter indstillet (NAME = "IAMAPROPERTY"
).
Hvis det pågældende element kan betragtes som en egenskab (CUSTOMER_NAME
) af en anden enhed (lad os sige CUSTOMER
), kan elementet have nul eller flere attributter (egenskaber) i sig selv (CUSTOMER_NAME
er af TYPE = "KINDOFTEXT"
).