Hem Utveckling Vad är ett villkorat attribut i c? - definition från techopedia

Vad är ett villkorat attribut i c? - definition från techopedia

Innehållsförteckning:

Anonim

Definition - Vad betyder villkorsattribut?

Ett villkorat attribut är en tagg som används för att markera en metod eller klass vars exekvering beror på definitionen av förbehandlingsidentifierare.


Ett villkorat attribut indikerar ett villkor för att specificera villkorlig sammanställning där metoder selektivt kallas på basis av definitionen av symboler. Den instruerar kompilatorn att sammanställa (till Microsoft Intermediate Language) eller inte kompilera specifika kodblock, baserat på ett villkor - huruvida en specifik villkorlig kompilationssymbol definieras eller inte. Om specifika symboler inte har definierats i det ögonblick de anropas, ignoreras samtal till den metoden eller klassen av kompilatorn.

Techopedia förklarar villkorligt attribut

Ett villkorat attribut har följande egenskaper:

  • Det kan tillämpas på metoder och klasser, men bara om de härrör från ett attribut.
  • Vid tillämpning av villkorat attribut på en klass kommer attributsklassen att sändas ut endast till metadata om den villkorade kompilationssymbolen är definierad.
  • Det krävs en parameter, som är identifieringssymbolen som styr kompilationen.
  • Argumenten som skickas till en villkorad metod eller attributsklass kommer att typkontrolleras av kompilatorn.
  • Det tas fullständigt hand om av kompilatorn och inte av körtiden.
  • Det kan inte tillämpas på en metod som används i ett uttryck för skapande av delegater.
  • Det påverkar inte koden som genereras för villkorad metod utan påverkar samtalet till metoden.

Ett villkorat attribut ger ett deklarativt programmeringsmönster och hjälper till att enkelt upprätthålla källkoden. Genom att använda ett villkorat attribut på metodnivå är källkoden mer läsbar. Den som ringer till en metod behöver inte ta ytterligare kod för villkorlig sammanställning. Ett villkorat attribut används för att möjliggöra spårning och loggningsfunktioner i felsökning med hjälp av identifieraren DEBUG för att visa och logga diagnostisk information relaterad till applikationen. Det hjälper också till att skilja logik relaterad till felsökningsbyggnad (i system som används för utveckling) från frisläppsbyggnader, som distribueras på webbplatser och applikationer. För att behålla flera utgåvor (med utvalda funktioner i en del utgåva) av en mjukvara utan kodduplicering, bildar villkorlig kompilering rätt teknik med vilken den enda huvudkällkoden upprätthålls för flera utgåvor baserade på respektive symboler definierade för dem.


Följande är några regler att följa när du använder ett villkorat attribut:

  • En villkorad metod i en klass- eller strukturdeklaration måste ha en returtyp som ogiltig.
  • När du använder flera identifierare som villkorade attribut är inkluderingen av metod (er) baserad på resultatet av logisk ELLER eller logisk OCH på de definierade symbolerna.
  • Det kan inte specificeras på en metod i en gränssnittsdeklaration.
  • En villkorad metod kan inte föregås med "åsidosättande" nyckelord, men det kan vara virtuellt. Om det åsidosätts anses det vara en villkorad implicit.
  • Symboler som beaktas för villkorlig kompilering kan definieras som kompilatorens kommandoradsalternativ eller som miljövariabler från OS-skalet eller som pragmas (med hjälp av preprocessordirektiv "#define") i källkoden.
  • Till skillnad från C ++ kan definitionen av symboler i C # vara i valfri ordning och därför måste ordningen mellan "#define" och en villkorad metod vara korrekt inställd.

Även om användning av "#if och #endif" utgör ett alternativt alternativ till villkorat attribut, ger det senare en mer ren, elegant och mindre felbenägen metod jämfört med den förra. Internt är skillnaden att när man använder ett villkorat attribut för en metod, kommer metoden fortfarande att vara en del av enheten och inte laddas. Men för #if / #endif kommer metoden inte att synas i själva enheten.

Denna definition har skrivits i samband med C #
Vad är ett villkorat attribut i c? - definition från techopedia