Hjem Udvikling Hvad er retningsbestemte attributter i c? - definition fra techopedia

Hvad er retningsbestemte attributter i c? - definition fra techopedia

Indholdsfortegnelse:

Anonim

Definition - Hvad betyder retningsbestemte attributter?

Retningsattributter, i C #, er mærker, der bruges til at specificere objektmetodeparametre (r) med information relateret til retningsstrømmen af ​​data mellem den, der ringer og callee.


Retningsattributter kontrollerer marskalkning - hvor et objekt er forberedt til overførsel over en applikations- eller procesgrænse - af metodeparameterens retning og returværdier. Retningsattributter anvendes til at ændre runtime-marskalkning under kommunikation af administreret kode, der udføres af Common Language Runtime (CLR) og unmanaged code, der udføres uden for CLR's kontrol.

Techopedia forklarer retningsbestemte attributter

InAttribute og OutAttribute er de to C # retningsattributter, der bruges til at kortlægge komponentobjektmodellen (COM) Interface Definition Language (IDL) attributter. InAttribute-kort til og OutAttribute-kort til. Den styrede metodesignatur returnerer værdikort til i et typebibliotek. Det er vigtigt at specificere den rigtige retningsattribut til metodeparametre, så biblioteket med eksporttype indstiller In / Out-bitene korrekt.


Ved at anvende InAttribute og OutAttribute i arrays og formaterede ikke-blive-typer (der ikke har fælles administreret og uadministreret hukommelsesrepræsentation), ser opkalderen callee ændringer. Retningsattributter anvendt på disse typer reducerer unødvendige kopier under marskalkning.


I C # bruges InAttribute og OutAttribute i tre former med to nøgleord under opkalds- og callee-kommunikation som følger:

  • "ud" - implikationer
  • "ref" - Implikationer,
  • (Ingen specificeret) - (som standard)

Ud- og ref-nøgleordene bruges til værdityper og serialiserbare referencetyper. Ref-søgeordet indebærer, at parameteren er marskalket i begge retninger, og ud indebærer callee-dataoverførsel. Når ref eller out ikke bruges, betyder dette, at data overføres til callee.


F.eks. Sender en .NET-klientapplikation en inputværdi til en COM-komponentmetode, der beregner inputværdieresultatet og returnerer resultatet til klienten. Retningsattributter kan anvendes på parametrene for metoden, der betjener anmodningen, ved at indikere den krævede marskingtype for inputværdi og resultat.


Retningsattributter har følgende egenskaber:

  • Valgfrit og anvendt på metodeparametre på designtidspunktet
  • Understøttes kun for COM interop og platform påberåber sig
  • InAttribute kan ikke anvendes til en parameter med et ud-søgeord

CLR interop-marshaler leverer marsjeringstjeneste ved kørsel ved at håndtere metodekaldsargumenter og returnere værdier mellem administreret og ustyret hukommelse. Hvis retningsattributter ikke er defineret, bestemmer marshaleren retningsstrømmen baseret på parametertypen og eventuel modifikator. Marshaleren fungerer på følgende måde:

  • Det overskriver ikke de data, der er videregivet som en "In" -parameter fra ikke-administreret kode. Således kan kun read-only data, som samtidig adgang til data, videregives.
  • Når du passerer objekter - såsom basale eller binære strenge (BSTR) - med etableret hukommelsesallokering, følges den korrekte allokerings- / deallokationssekvens i henhold til ind / ud-indstillinger.
Denne definition blev skrevet i forbindelse med C #
Hvad er retningsbestemte attributter i c? - definition fra techopedia