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.


