Indholdsfortegnelse:
Definition - Hvad betyder betinget attribut?
En betinget attribut er et tag, der bruges til at markere en metode eller klasse, hvis udførelse afhænger af definitionen af forbehandlingsidentifikator.
En betinget attribut indikerer en betingelse til at specificere betinget kompilering, hvor metoder selektivt kaldes på grundlag af definitionen af symboler. Den instruerer kompilatoren til at kompilere (til Microsoft Intermediate Language) eller ikke kompilere specifikke kodeblokke, baseret på en betingelse - hvorvidt et specifikt betinget kompilationssymbol er defineret eller ej. Hvis der ikke er defineret specifikke symboler på det øjeblik, de kaldes, ignoreres opkald til denne metode eller klasse af kompilatoren.
Techopedia forklarer betinget attribut
En betinget attribut har følgende egenskaber:
- Det kan anvendes på metoder og klasser, men kun hvis de er afledt af en attribut.
- Når du anvender betinget attribut til en klasse, sendes attributklassen kun til metadata, hvis symbolet med betinget kompilering er defineret.
- Det tager en parameter, som er identifikationssymbolet, der kontrollerer kompilationen.
- Argumenterne, der overføres til en betinget metode eller attributklasse, vil blive typekontrolleret af kompilatoren.
- Det tages fuldt ud af kompilatoren og ikke af køretiden.
- Det kan ikke anvendes på en metode, der bruges i et udtryk for delegeret oprettelse.
- Det påvirker ikke koden, der er genereret til betinget metode, men påvirker opkaldet til metoden.
En betinget attribut giver et deklarativt programmeringsmønster og hjælper med let at vedligeholde kildekoden. Ved at anvende en betinget attribut på metodeniveau er kildekoden mere læsbar. Opkalderen til en metode behøver ikke tage yderligere kode til betinget kompilering. En betinget attribut bruges til at aktivere sporings- og logfunktionaliteter i debug builds ved hjælp af identifikatoren DEBUG til at vise og logge diagnostisk information relateret til applikationen. Det hjælper også med at adskille logik, der er relateret til debug build (i systemer, der bruges til udvikling) fra release builds, som er implementeret på websteder og applikationer. For at vedligeholde flere udgaver (med udvalgte funktioner i en eller anden udgave) af en software uden kodeduplikation danner betinget kompilering den rigtige teknik, hvormed den enkelte hovedkildekode opretholdes for flere udgaver baseret på de respektive symboler, der er defineret for dem.
Følgende er nogle regler, der skal følges, mens du bruger en betinget attribut:
- En betinget metode inden for en klasse- eller strukturdeklaration skal have en returtype som ugyldig.
- Når du bruger flere identifikatorer som betingede attributter, er inkluderingen af metode (r) baseret på resultatet af logisk ELLER eller logisk AND på de definerede symboler.
- Det kan ikke specificeres på en metode i en grænsefladedeklaration.
- En betinget metode kan ikke gå forud for et "tilsidesætte" nøgleord, men det kan være virtuelt. Hvis det tilsidesættes, betragtes det implicit som betinget.
- Symboler, der overvejes til betinget kompilering, kan defineres som kompilatorens kommandolinjemuligheder eller som miljøvariabler fra OS-shell eller som pragmas (ved hjælp af præprocessordirektiv "#define") i kildekoden.
- I modsætning til C ++ kan definition af symboler i C # være i en hvilken som helst rækkefølge, og ordren mellem "#define" og en betinget metode skal derfor indstilles korrekt.
Selvom brug af "#if og #endif" danner en alternativ mulighed for betinget attribut, giver sidstnævnte en mere ren, elegant og mindre fejlbenyttet tilgang sammenlignet med den førstnævnte. Internt er forskellen, at mens du bruger en betinget attribut til en metode, vil metoden stadig være en del af samlingen og ikke indlæst. Men i tilfælde af #if / #endif vil metoden ikke være synlig i selve forsamlingen.
Denne definition blev skrevet i forbindelse med C #