Tartalomjegyzék:
- Meghatározás - Mit jelent a feltételes attribútum?
- A Techopedia magyarázza a feltételes tulajdonságot
Meghatározás - Mit jelent a feltételes attribútum?
A feltételes attribútum egy olyan módszer vagy osztály megjelölésére szolgáló címke, amelynek végrehajtása az előfeldolgozás azonosítójának meghatározásától függ.
A feltételes attribútum azt a feltételt jelöli, amely meghatározza a feltételes összeállítást, ahol a módszereket szelektíven hívják meg a szimbólumok meghatározása alapján. Utasítja a fordítót, hogy fordítson (a Microsoft köztes nyelvébe), vagy ne állítson össze meghatározott kódblokkokat, egy feltétel alapján - függetlenül attól, hogy egy adott feltételes fordítási szimbólum meghatározva van-e. Ha konkrét szimbólumokat nem határoztak meg a meghívásuk pillanatában, akkor a fordító figyelmen kívül hagyja az adott módszerre vagy osztályra irányuló hívásokat.
A Techopedia magyarázza a feltételes tulajdonságot
A feltételes attribútum a következő jellemzőkkel rendelkezik:
- Alkalmazható módszerekre és osztályokra, de csak akkor, ha egy attribútumból származnak.
- Miközben feltételes attribútumot alkalmazunk egy osztályra, az attribútum osztály csak akkor kerül a metaadatokba, ha a feltételes összeállítási szimbólum meg van határozva.
- Egy paramétert vesz igénybe, amely az azonosító szimbólum, amely vezérli az összeállítást.
- A feltételes módszerhez vagy attribútumosztályhoz továbbított argumentumokat a fordító típusellenőrzi.
- Ez teljesen a fordító, és nem a futási idő.
- Nem alkalmazható a küldött-létrehozó kifejezésben használt módszerre.
- Nem befolyásolja a feltételes módszerhez generált kódot, hanem befolyásolja a módszer meghívását.
A feltételes attribútum deklaratív programozási mintát biztosít és segít a forráskód karbantartásában. Ha egy feltételes attribútumot alkalmazunk a metódus szintjén, akkor a forráskód jobban olvasható. A módszer hívójának nem kell további kódot vennie a feltételes összeállításhoz. A feltételes attribútum lehetővé teszi a nyomkövetési és naplózási funkciók nyomkövetési és naplózási funkcióinak lehetővé tételét a hibakeresési összeállításokban, a DEBUG azonosító segítségével az alkalmazáshoz kapcsolódó diagnosztikai információk megjelenítéséhez és naplózásához. Ezenkívül elősegíti a hibakeresési összetevők logikájának (a fejlesztéshez használt rendszerekben) elválasztását a kiadás-összeállításoktól, amelyek telepítve vannak a helyszíneken és az alkalmazásokban. A szoftver többszörös kiadásainak (bizonyos kiadásokban bizonyos funkciókkal) karbantartása nélkül, a kód feltöltés nélkül, a feltételes fordítás a megfelelő technikát hozza létre, amellyel az egyetlen fő forráskódot több kiadás számára fenntartják, a hozzájuk tartozó szimbólumok alapján.
A következő néhány szabályt kell betartani egy feltételes attribútum használatakor:
- Az osztályon vagy a struktúra deklaráción belüli feltételes módszernek érvénytelennek kell lennie a visszatérési típusnak.
- Miközben több azonosítót használunk feltételes attribútumként, a módszer (ek) bevonása a logikai VAGY vagy a logikai ÉS a meghatározott szimbólumok eredményén alapul.
- Nem határozható meg egy interfész deklarációban szereplő módszernél.
- Egy feltételes módszer nem vezethetõ el a "felülbírálás" kulcsszó elõtt, de lehet virtuális. Ha felülbírálják, azt implicit módon feltételesnek tekintik.
- A feltételes összeállítás szempontjából figyelembe vett szimbólumokat fordító parancssori opciókként vagy környezeti változókként definiálhatjuk az operációs rendszer héjából, vagy pragmákként (a "#define" előfeldolgozó irányelv felhasználásával) a forráskódban.
- A C ++-tól eltérően, a szimbólumok meghatározása a C # -ben bármilyen sorrendben lehet, ezért a "#define" és egy feltételes módszer közötti sorrendet megfelelően beállítani.
Bár a "#if és #endif" használata alternatív lehetőséget kínál a feltételes tulajdonságokra, az utóbbi tisztább, elegánsabb és kevésbé hibalehetőséget nyújt az előzőhöz képest. Belsőleg az a különbség, hogy miközben egy feltételes attribútumot használunk egy módszerhez, a módszer továbbra is az összeállítás része és nem lesz betöltve. De #if / #endif esetén a módszer nem lesz látható magában az összeállításban.
Ezt a meghatározást a C # összefüggésben írták