C# Enum(Enumeration) esimerkin kanssa
⚡ Älykäs yhteenveto
C#:n luetteloinnit määrittelevät nimetyn joukon vakiointegraaliarvoja, kuten viikonpäivät, mikä helpottaa koodin lukemista ja ylläpitoa. Avainsana enum määrittää nämä kiinteät vakiot kerran uudelleenkäytettäväksi koko ohjelmassa.
C# luettelointi
Luetteloa käytetään missä tahansa ohjelmointikielessä määrittämään vakio arvojen joukko. Esimerkiksi viikonpäivät voidaan määritellä luetteloiksi ja käyttää kaikkialla ohjelmassa. C#:ssa luettelointi määritellään avainsanan 'enum' avulla.
Katsotaanpa esimerkkiä enum-avainsanan käytöstä.
Esimerkissämme määritämme luettelon nimeltä päivät, jota käytetään tallentamaan viikonpäivät. Jokaisessa esimerkissä muokkaamme vain Program.cs-tiedostomme päätoimintoa.
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 Selitys:-
- "enum" tietotyyppi on määritetty ilmoittamaan luettelo. Luettelon nimi on Days. Kaikki viikonpäivät on määritetty luettelon arvoiksi.
- Lopuksi console.write-funktiota käytetään näyttämään yksi luettelon arvoista.
Jos yllä oleva koodi on syötetty oikein ja ohjelma suoritetaan onnistuneesti, seuraava tulos näytetään.
lähtö:
Tulosteesta näet, että konsolissa näkyy luettelon 'Aurinko'-arvo.
Miksi käyttää Enum-arvoja C#:ssa?
Enumit tekevät ohjelmasta helpommin luettavan, turvallisemman ja yksinkertaisemman ylläpitää. Sen sijaan, että selittämättömiä lukuja, joita joskus kutsutaan taikaluvuiksi, sirotellaan koko koodiin, luettelo antaa jokaiselle arvolle kuvaavan nimen, joka ilmaisee sen tarkoituksen.
- luettavuus: Nimi, kuten Days.Fri, on paljon selkeämpi kuin numero 5, joten kuka tahansa koodin lukeva ymmärtää sen merkityksen välittömästi.
- Tyyppiturvallisuus: Enum-tyypillä ilmoitettu muuttuja voi sisältää vain yhden määritellyistä jäsenistä, mikä estää virheellisten arvojen lipsahtamisen.ping tuumaa
- Ylläpidettävyys: Toisiinsa liittyvät vakiot sijaitsevat yhdessä paikassa, joten arvon lisääminen tai uudelleennimeäminen päivittää koko ohjelman johdonmukaisesti.
- Tietojen sidonta: Kehykset, kuten WPF ja ASP.NET, voivat sitoa enumin alasvetovalikkoon, mikä tekee enumeista hyödyllisiä käyttöliittymien rakentamisessa.
Koska kääntäjä tarkistaa jokaisen sijoituksen sallittuja jäseniä vasten, enumit auttavat myös havaitsemaan virheitä varhaisessa vaiheessa, ennen ohjelman suorittamista.
Mukautettujen arvojen määrittäminen C#-enumille
Oletusarvoisesti C# antaa ensimmäiselle enum-jäsenelle arvon 0 ja kasvattaa jokaista seuraavaa jäsentä yhdellä. Yllä olevassa Days-luetteloinnissa su on 0, ma on 1 ja la on 6. Voit ohittaa nämä oletusasetukset antamalla eksplisiittiset numerot.
- Eksplisiittiset arvot: Enum Level {Low = 1, Medium = 5, High = 10} -arvon kirjoittaminen asettaa jokaiselle jäsenelle valitun numeron oletusarvon sijaan.
- Osittainen tehtävä: Jos määrität arvon vain joillekin jäsenille, kääntäjä jatkaa numeroinnin viimeksi määritetystä arvosta seuraaville jäsenille.
- Perustyyppi: Enum tallentaa jäsenensä oletusarvoisesti kokonaislukuna, mutta voit käyttää tavua, shorttia tai longia muistin säästämiseksi tai aluetta laajentaaksesi.
Mukautetut arvot ovat hyödyllisiä, kun numeroiden on vastattava ulkoista järjestelmää, kuten tietokantakoodeja tai protokollavakioita, jotta luettelointi peilaa todellista dataa täsmälleen.
C#-enum-arvojen muuntaminen kokonaislukuiksi, merkkijonoiksi ja lipuiksi
C#:ssa enum-arvo täytyy usein siirtää toiseen muotoon, kuten tallentaa se numerona tai lukea se takaisin tekstistä. Nämä muunnokset tapahtuvat muutamalla vakiotavalla.
- Enum kokonaisluvuksi: Eksplisiittinen muunnos, kuten (int)Days.Wed, palauttaa pohjana olevan kokonaisluvun, joka on hyödyllinen tallennuksessa tai aritmetiikassa.
- int-luku enum-muotoon: Toiseen suuntaan muuntaminen, esimerkiksi muotoon (Days)3, muuttaa luvun takaisin vastaavaksi enum-jäseneksi.
- Merkkijono luetteloon: Enum.Parse ja turvallisempi Enum.TryParse muuntavat nimen, kuten ”Fri”, Days.Fri-jäseneksi heittämättä virheellistä tekstiä.
- Enum merkkijonoksi: ToString-funktion kutsuminen mille tahansa jäsenelle palauttaa sen nimen, joten Days.Sun.ToString() tuottaa ”Sun” näytettäväksi tai lokiin kirjattavaksi.
- Listauksen jäsenet: Enum.GetValues ja Enum.GetNames palauttavat kaikki arvon tai nimen, mikä auttaa valikoiden täyttämisessä tai syötteen validoinnissa.
Kun enumin tulisi edustaa vaihtoehtojen yhdistelmää yhden sijaan, käytä Flags-attribuuttia ja anna jokaiselle jäsenelle kahden potenssi, kuten 1, 2, 4 ja 8. Voit sitten yhdistää jäseniä bittikohtaisella TAI-operaattorilla ja testata tiettyä vaihtoehtoa HasFlag-metodilla.
Nämä muunnostekniikat mahdollistavat luettelon siirtymisen selkeästi luettavien nimien, tallennettujen numeroiden ja yhdistettyjen lippujoukkojen välillä, keeping loput ohjelmasta ovat sekä tyyppiturvallisia että helppoja seurata.



