C# loend (loend) koos näitega
⚡ Nutikas kokkuvõte
C# loendamine defineerib nimega konstantsete integraalväärtuste hulga, näiteks nädalapäevad, mis muudab koodi lugemise ja haldamise lihtsamaks. Märksõna enum deklareerib need fikseeritud konstandid üks kord, et neid saaks programmis uuesti kasutada.

C# loendus
Loendamist kasutatakse igas programmeerimiskeeles konstantse väärtuste komplekti määratlemiseks. Näiteks võib nädalapäevi määratleda loendina ja kasutada programmis kõikjal. C#-s defineeritakse loendus märksõna 'enum' abil.
Vaatame näidet selle kohta, kuidas kasutada märksõna 'enum'.
Meie näites määratleme loendi nimega päevad, mida kasutatakse nädalapäevade salvestamiseks. Iga näite puhul muudame faili Program.cs põhifunktsiooni.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { enum Days{Sun,Mon,tue,Wed,thu,Fri,Sat}; static void Main(string[] args) { Console.Write(Days.Sun); Console.ReadKey(); } } }
Code Selgitus:-
- 'enum' andmetüüp on määratud loenduse kuulutamiseks. Loenduse nimi on Päevad. Loenduse väärtustena on määratud kõik nädalapäevad.
- Lõpuks kasutatakse loendi ühe väärtuse kuvamiseks funktsiooni console.write.
Kui ülaltoodud kood on õigesti sisestatud ja programm on edukalt käivitatud, kuvatakse järgmine väljund.
Väljund:
Väljundist näete, et konsoolis kuvatakse loendi väärtus "Päike".
Miks kasutada C#-s enum'e?
Loendid muudavad programmi loetavamaks, turvalisemaks ja lihtsamini hallatavaks. Selle asemel, et koodis laiali pillutada seletamatuid numbreid, mida mõnikord nimetatakse ka maagilisteks numbriteks, annab loend igale väärtusele kirjeldava nime, mis väljendab selle eesmärki.
- Loetavus: Nimi nagu Days.R on palju selgem kui number 5, seega saab igaüks, kes koodi loeb, selle tähendusest kohe aru.
- Tüübi ohutus: Enum-tüübiga deklareeritud muutuja saab sisaldada ainult ühte määratletud liiget, mis hoiab ära sobimatute väärtuste libisemise.ping sisse
- Hooldatavus: Seotud konstandid asuvad ühes kohas, seega väärtuse lisamine või ümbernimetamine uuendab kogu programmi järjepidevalt.
- Andmete sidumine: Raamistikud nagu WPF ja ASP.NET saavad enumi siduda rippmenüüga, mis muudab enumid kasulikuks kasutajaliideste loomisel.
Kuna kompilaator kontrollib iga omistamist lubatud liikmete suhtes, aitavad enumid vigu varakult, enne programmi käivitamist, avastada.
C# enumile kohandatud väärtuste määramine
Vaikimisi määrab C# esimesele enum-liikmele väärtuse 0 ja suurendab iga järgmist liiget ühe võrra. Ülaltoodud päevade loendis on pühapäev võrdne 0-ga, esmaspäev võrdne 1-ga ja laupäev võrdne 6-ga. Neid vaikesätteid saab tühistada, määrates selgesõnalised numbrid.
- Selgesõnalised väärtused: Enum Level {Madal = 1, Keskmine = 5, Kõrge = 10} kirjutamine määrab igale liikmele valitud numbri vaikejärjestuse asemel.
- Osaline ülesanne: Kui määrate väärtuse ainult mõnele liikmele, jätkab kompilaator nummerdamist järgnevate liikmete jaoks viimasest määratud väärtusest.
- Alusvara tüüp: Vaikimisi salvestab enum oma liikmed täisarvuna (int), aga mälu säästmiseks või vahemiku laiendamiseks saab selle aluseks võtta ka bait (byte), lühike (short) või pikk (long).
Kohandatud väärtused on kasulikud, kui numbrid peavad vastama välisele süsteemile, näiteks andmebaasikoodidele või protokollikonstantidele, et loend peegeldaks täpselt tegelikke andmeid.
Kuidas teisendada C# enum-id täisarvudeks, stringideks ja lippudeks
C#-s on sageli vaja enum-väärtust teisele kujule teisaldada, näiteks numbrina salvestada või tekstist tagasi lugeda. Need teisendused toimuvad mitmel standardsel viisil.
- Enum koguarvuks: Selgesõnaline teisendus, näiteks (int)Days.Wed, tagastab aluseks oleva täisarvu, mis on kasulik salvestamiseks või aritmeetika jaoks.
- int loendisse: Teises suunas teisendamine, näiteks (Days)3, muudab arvu tagasi sobivaks enum-liikmeks.
- Loendisse lisatav string: Enum.Parse ja turvalisem Enum.TryParse teisendavad nime, näiteks „Fri“, Days.Fri liikmeks ilma sobimatut teksti viskamata.
- Enum stringiks: Funktsiooni ToString kutsumine mis tahes liikme puhul tagastab selle nime, seega Days.Sun.ToString() annab kuvamiseks või logimiseks tulemuseks „Sun“.
- Kuulutuse liikmed: Enum.GetValues ja Enum.GetNames tagastavad kõik väärtused või nimed, mis on abiks menüüde täitmisel või sisendi valideerimisel.
Kui enum peaks esindama valikute kombinatsiooni, mitte ühte, rakendage atribuuti Flags ja andke igale liikmele kahe aste, näiteks 1, 2, 4 ja 8. Seejärel saate liikmeid kombineerida bitipõhise OR-operaatoriga ja testida konkreetset valikut HasFlag-meetodi abil.
Need teisendustehnikad võimaldavad enumil sujuvalt liikuda loetavate nimede, salvestatud numbrite ja kombineeritud lipukomplektide vahel, keeping ülejäänud programm on nii tüübikindel kui ka hõlpsasti jälgitav.


