Riktningsattribut

Författare: Lewis Jackson
Skapelsedatum: 8 Maj 2021
Uppdatera Datum: 25 Juni 2024
Anonim
High Density 2022
Video: High Density 2022

Innehåll

Definition - Vad betyder riktningsattribut?

Riktningsattribut, i C #, är taggar som används för att specificera objektmetodparametrar med information relaterad till riktningsflödet för data mellan den som ringer och callee.

Riktningsattribut styr marschering - där ett objekt är förberett för överföring över en applikation eller processgräns - för metodparametrarna riktning och returvärden. Riktningsattribut tillämpas för att modifiera runtime-marskalkning medan man kommunicerar hanterad kod, som körs av Common Language Runtime (CLR), och ostyrd kod, som körs utanför CLR: s kontroll.


En introduktion till Microsoft Azure och Microsoft Cloud | I hela denna guide kommer du att lära dig vad cloud computing handlar om och hur Microsoft Azure kan hjälpa dig att migrera och driva ditt företag från molnet.

Techopedia förklarar riktningsattribut

InAttribute och OutAttribute är de två C # -riktningsattributen som används för att kartlägga komponentobjektmodeller (COM) Interface Definition Language (IDL) -attribut. InAttribute-kartor till och OutAttribute-kartor till. Den hanterade metodsignaturens returvärdeskartor till i ett typbibliotek. Det är viktigt att specificera rätt riktningsattribut till metodparametrar, så att exporttypsbiblioteket ställer in / ut-bitarna korrekt.

Genom att tillämpa InAttribute och OutAttribute i matriser och formaterade typer som inte kan bli tillgängliga (som inte har gemensam hanterad och ostyrd minnesrepresentation) ser den som ringer upp callee-förändringar. Riktningsattribut som tillämpas på dessa typer minskar onödiga kopior under marskalkning.

I C # används InAttribute och OutAttribute i tre former med två sökord under samtal och callee-kommunikation, enligt följande:


  • "ut" - Implikationer
  • "ref" - Implikationer,
  • (Ingen specificerad) - (som standard)

Ut-och-ref-nyckelorden används för värdetyper och serierbara referenstyper. Ref-nyckelordet antyder att parametern är marskalkad i båda riktningarna och ut innebär överföring av callee-data. När ref eller out inte används, innebär detta att data överförs till callee.

Till exempel sänder en .NET-klientapplikation ett inmatningsvärde till en COM-komponentmetod, som beräknar ingångsvärdesresultatet och returnerar resultatet till klienten. Riktningsattribut kan tillämpas på parametrarna för metoden som betjänar begäran genom att ange den erforderliga marsjeringstypen för ingångsvärde och resultat.

Riktningsattribut har följande egenskaper:

  • Valfritt och tillämpat på metodparametrar vid designtid
  • Stöds endast för COM interop och plattformsanrop
  • InAttribute kan inte tillämpas på en parameter med ett ut nyckelord

CLR interop marshaler tillhandahåller marsjeringstjänst under körning genom att hantera metodsamtalargument och returnera värden mellan hanterat och ostyrt minne. Om riktningsattribut inte definieras bestämmer marshalen riktningsflöde baserat på parametertyp och modifierare (om någon). Marshaleren fungerar på följande sätt:


  • Det skriver inte över data som skickas som en "In" -parameter från ostyrd kod. Således kan endast skrivskyddad data, som samtidigt åtkomna data, skickas.
  • När du passerar objekt - som bas- eller binärsträngar (BSTR) - med etablerad minnesallokering, följs korrekt allokerings- / deallokaliseringssekvens enligt inställningar för In / Out.
Denna definition har skrivits i C #