Innholdsfortegnelse:
Definisjon - Hva betyr betinget attributt?
Et betinget attributt er en tag som brukes til å markere en metode eller klasse hvis utførelse avhenger av definisjonen av forbehandlingsidentifikator.
Et betinget attributt indikerer en betingelse for å spesifisere betinget sammenstilling hvor metoder selektivt kalles på grunnlag av definisjon av symboler. Den instruerer kompilatoren om å kompilere (til Microsoft Intermediate Language) eller ikke kompilere spesifikke kodeblokker, basert på en betingelse - om et spesifikt betinget kompilasjonssymbol er definert eller ikke. Hvis spesifikke symboler ikke er definert på det øyeblikk de blir kalt, vil samtaler til denne metoden eller klassen ignoreres.
Techopedia forklarer betinget attributt
Et betinget attributt har følgende egenskaper:
- Det kan brukes på metoder og klasser, men bare hvis de er avledet fra en attributt.
- Når du bruker betinget attributt til en klasse, vil attributtklassen sendes ut til metadata hvis betinget kompilasjonssymbol er definert.
- Det tar en parameter, som er identifikasjonssymbolet som kontrollerer samlingen.
- Argumentene som sendes til en betinget metode eller attributtklasse, blir typekontrollert av kompilatoren.
- Den blir fullstendig ivaretatt av kompilatoren og ikke av kjøretiden.
- Det kan ikke brukes på en metode som brukes i et uttrykk for delegatskaping.
- Det påvirker ikke koden som genereres for betinget metode, men påvirker samtalen til metoden.
Et betinget attributt gir et deklarativt programmeringsmønster og hjelper deg med å opprettholde kildekoden. Ved å bruke et betinget attributt på metodnivå, er kildekoden mer lesbar. Den som ringer en metode trenger ikke ta ytterligere kode for betinget kompilering. Et betinget attributt brukes for å aktivere sporings- og loggfunksjonaliteter i feilsøkingene ved å bruke identifikatoren DEBUG til å vise og logge diagnostisk informasjon relatert til applikasjonen. I tillegg hjelper det å skille logikk relatert til feilsøking (i systemer som brukes for utvikling) fra utgivelsesbygg, som er distribuert på nettsteder og applikasjoner. For å opprettholde flere utgaver (med valgte funksjoner i noen utgave) av en programvare uten kodeduplisering, danner betinget kompilering den rette teknikken som den ene hovedkildekoden opprettholdes for flere utgaver basert på de respektive symbolene som er definert for dem.
Følgende er noen regler du skal følge når du bruker en betinget attributt:
- En betinget metode i en klasse- eller strukturerklæring må ha en returtype som ugyldig.
- Når du bruker flere identifikatorer som betingede attributter, er inkludering av metode (r) basert på resultatet av logisk ELLER eller logisk OG på de definerte symbolene.
- Det kan ikke spesifiseres på en metode i en grensesnittdeklarasjon.
- En betinget metode kan ikke gå foran "overstyre" nøkkelord, men det kan være virtuelt. Hvis den overstyres, anses det å være betinget implisitt.
- Symboler som vurderes for betinget kompilering kan defineres som kompilatorens kommandolinjealternativer eller som miljøvariabler fra OS-skallet eller som pragmas (ved å bruke forhåndsprosessordirektivet "#define") i kildekoden.
- I motsetning til C ++, kan definisjon av symboler i C # være i hvilken som helst rekkefølge, og dermed må rekkefølgen mellom "#define" og en betinget metode settes riktig.
Selv om bruk av "#if og #endif" danner et alternativ til betinget attributt, gir sistnevnte en mer ren, elegant og mindre feilutsatt tilnærming sammenlignet med den førstnevnte. Internt er forskjellen at mens du bruker en betinget attributt for en metode, vil metoden fremdeles være en del av monteringen og ikke lastet. Men for #if / #endif vil metoden ikke være synlig i selve forsamlingen.
Denne definisjonen ble skrevet i sammenheng med C #