Turinys:
Apibrėžimas - ką reiškia sąlyginis požymis?
Sąlyginis atributas yra žyma, naudojama metodui ar klasei pažymėti, kurio vykdymas priklauso nuo pirminio apdorojimo identifikatoriaus apibrėžimo.
Sąlyginis požymis nurodo sąlygą, kad būtų galima apibrėžti sąlyginį rinkinį, kuriame metodai yra selektyviai vadinami remiantis simbolių apibrėžimu. Tai nurodo kompiliatoriui sudaryti (į „Microsoft“ tarpinę kalbą) arba nekompiliuoti konkrečių kodo blokų, atsižvelgiant į sąlygą - ar apibrėžtas konkretus sąlyginio kompiliacijos simbolis, ar ne. Jei konkretūs simboliai nebuvo apibrėžti tuo metu, kai jie vadinami, kompiliatorius neatsižvelgs į skambučius į tą metodą ar klasę.
„Techopedia“ paaiškina sąlyginį požymį
Sąlyginis požymis turi šias savybes:
- Jis gali būti taikomas metodams ir klasėms, bet tik tuo atveju, jei jie yra išvestiniai iš atributo.
- Taikant sąlyginį atributą klasei, atributo klasė bus perduodama metaduomenims tik tuo atveju, jei bus apibrėžtas sąlyginio rinkimo simbolis.
- Tai trunka vieną parametrą, kuris yra identifikatoriaus simbolis, kontroliuojantis kompiliaciją.
- Argumentai, perduoti sąlyginiam metodui ar atributų klasei, bus patikrinti tipo sudarytojo.
- Tuo visiškai rūpinasi kompiliatorius, o ne vykdymo laikas.
- Jis negali būti taikomas metodui, naudojamam delegatų kūrimo išraiškai.
- Tai neturi įtakos sąlyginiam metodui generuotam kodui, tačiau turi įtakos raginimui naudoti metodą.
Sąlyginis atributas pateikia deklaratyvų programavimo modelį ir padeda lengvai išlaikyti šaltinio kodą. Taikant sąlyginį atributą metodo lygyje, šaltinio kodas yra lengviau skaitomas. Metodo skambinančiajam nereikia paimti papildomo kodo sąlygiškam kompiliavimui. Sąlyginis atributas naudojamas įgalinti sekimo ir registravimo funkcijas derinimo versijose, naudojant identifikatorių DEBUG, kad būtų rodoma ir registruojama su programa susijusi diagnostinė informacija. Tai taip pat padeda atskirti logiką, susijusią su derinimo kūrimu (sistemose, naudojamose plėtrai) nuo leidimų versijų, kurios yra diegiamos svetainėse ir programose. Norėdami išlaikyti kelis programinės įrangos leidimus (su pasirinktomis funkcijomis kai kuriuose leidimuose) be kodo dubliavimo, sąlyginis kompiliavimas sudaro tinkamą metodą, pagal kurį keli pagrindiniai leidimai yra palaikomi pagrindiniame pagrindiniame kode, remiantis atitinkamais jiems apibrėžtais simboliais.
Toliau pateikiamos kelios taisyklės, kurių reikia laikytis naudojant sąlyginį atributą:
- Sąlyginio metodo klasėje ar struktūrinėje deklaracijoje grąžinimo tipas turi būti negaliojantis.
- Naudojant kelis identifikatorius kaip sąlyginius požymius, metodo (-ų) įtraukimas grindžiamas loginio ARBA arba loginio IR rezultatu ir apibrėžtais simboliais.
- To negalima nurodyti metodo sąsajos deklaracijoje.
- Prieš sąlyginį metodą negalima rašyti raktinio žodžio „nepaisyti“, tačiau jis gali būti virtualus. Jei tai nepaisoma, ji laikoma sąlygine netiesiogine prasme.
- Simboliai, į kuriuos atsižvelgiama sąlygiškam kompiliavimui, gali būti apibrėžti kaip kompiliatoriaus komandinės eilutės parinktys arba kaip aplinkos kintamieji iš OS apvalkalo, arba kaip pragmos (naudojant išankstinio procesoriaus direktyvą „#define“) šaltinio kode.
- Skirtingai nuo C ++, simboliai C # gali būti apibrėžti bet kokia tvarka, todėl reikia tinkamai nustatyti eiliškumą tarp „# apibrėžti“ ir sąlyginį metodą.
Nors „#if“ ir „#endif“ vartojimas yra alternatyvus sąlyginio požymio pasirinkimas, pastarasis, palyginti su pirmuoju, suteikia švaresnį, elegantiškesnį ir mažiau klaidų vertinantį požiūrį. Vidinis skirtumas yra tas, kad metodui naudojant sąlyginį atributą, jis vis tiek bus mazgo dalis ir nebus įkeltas. Bet #if / #endif atveju metodas nebus matomas pačiame mazge.
Šis apibrėžimas buvo parašytas atsižvelgiant į C #