C# Enum(Opsomming) met voorbeeld
โก Slimme samenvatting
In C# definiรซren enumeraties een benoemde set van constante gehele getallen, zoals de dagen van de week, waardoor de code gemakkelijker te lezen en te onderhouden is. Het sleutelwoord `enum` declareert deze vaste constanten eenmalig, zodat ze in het hele programma hergebruikt kunnen worden.

C#-opsomming
Een opsomming wordt in elke programmeertaal gebruikt om een โโconstante reeks waarden te definiรซren. De dagen van de week kunnen bijvoorbeeld worden gedefinieerd als een opsomming en overal in het programma worden gebruikt. In C# wordt de opsomming gedefinieerd met behulp van het trefwoord 'enum'.
Laten we een voorbeeld bekijken van hoe we het trefwoord 'enum' kunnen gebruiken.
In ons voorbeeld definiรซren we een opsomming genaamd dagen, die zal worden gebruikt om de dagen van de week op te slaan. Voor elk voorbeeld zullen we alleen de hoofdfunctie in ons Program.cs-bestand wijzigen.
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 Uitleg:-
- De 'enum' data type is gespecificeerd om een โโopsomming te declareren. De naam van de opsomming is Dagen. Alle dagen van de week worden opgegeven als waarden van de opsomming.
- Ten slotte wordt de functie console.write gebruikt om een โโvan de waarden van de opsomming weer te geven.
Als de bovenstaande code correct is ingevoerd en het programma succesvol is uitgevoerd, wordt de volgende uitvoer weergegeven.
Output:
Uit de uitvoer kunt u zien dat de 'Zon'-waarde van de opsomming in de console wordt weergegeven.
Waarom enums gebruiken in C#?
Enumeraties maken een programma leesbaarder, veiliger en eenvoudiger te onderhouden. In plaats van onverklaarde getallen, ook wel 'magische getallen' genoemd, door de code te verspreiden, geeft een enumeratie elke waarde een beschrijvende naam die het doel ervan aangeeft.
- Leesbaarheid: Een naam als Days.Fri is veel duidelijker dan het getal 5, dus iedereen die de code leest, begrijpt de betekenis meteen.
- Type veiligheid: Een variabele die is gedeclareerd met een enum-type kan slechts รฉรฉn van de gedefinieerde leden bevatten, waardoor ongeldige waarden worden voorkomen.ping inch
- Onderhoudbaarheid: Gerelateerde constanten bevinden zich op รฉรฉn plek, waardoor het toevoegen of hernoemen van een waarde het hele programma consistent bijwerkt.
- Dataverbinding: Frameworks zoals WPF en ASP.NET kunnen een enum koppelen aan een dropdownlijst, waardoor enums nuttig zijn voor het bouwen van gebruikersinterfaces.
Omdat de compiler elke toewijzing controleert aan de hand van de toegestane leden, helpen enumeraties ook om fouten vroegtijdig op te sporen, voordat het programma wordt uitgevoerd.
Aangepaste waarden toewijzen aan een C#-enum
Standaard kent C# aan het eerste lid van een enum de waarde 0 toe en verhoogt elk volgend lid met รฉรฉn. In de bovenstaande enumeratie 'Days' is 'Sun' gelijk aan 0, 'Mon' gelijk aan 1 en 'Sat' gelijk aan 6. U kunt deze standaardwaarden overschrijven door expliciete getallen toe te kennen.
- Expliciete waarden: Door enum Level {Low = 1, Medium = 5, High = 10} te schrijven, wordt voor elk lid een gekozen nummer ingesteld in plaats van de standaardreeks.
- Gedeeltelijke opdracht: Als je aan slechts enkele leden een waarde toewijst, blijft de compiler de nummering voor de volgende leden voortzetten vanaf de laatst toegewezen waarde.
- Onderliggend type: Een enum slaat zijn leden standaard op als integer, maar je kunt hem baseren op byte, short of long om geheugen te besparen of het bereik uit te breiden.
Aangepaste waarden zijn handig wanneer de getallen moeten overeenkomen met een extern systeem, zoals databasecodes of protocolconstanten, zodat de enum de werkelijke gegevens exact weerspiegelt.
Hoe converteer je C#-enums naar integers, strings en flags?
In C# is het vaak nodig om een โโenum-waarde om te zetten naar een andere vorm, bijvoorbeeld door deze op te slaan als een getal of door de waarde terug te lezen uit tekst. Deze conversies vinden op een aantal standaardmanieren plaats.
- Enum naar int: Een expliciete typeconversie zoals (int)Days.Wed retourneert het onderliggende integergetal, wat handig is voor opslag of rekenkundige bewerkingen.
- integer naar enum: Bij het omzetten in de andere richting, bijvoorbeeld (Days)3, wordt een getal weer omgezet in het overeenkomstige enum-lid.
- String naar enum: Enum.Parse en de veiligere Enum.TryParse zetten een naam zoals "Fri" om in het lid Days.Fri zonder een foutmelding te geven bij ongeldige tekst.
- Enum naar tekenreeks: Als je ToString aanroept op een willekeurig lid, krijg je de naam ervan terug. Dus Days.Sun.ToString() geeft "Sun" als resultaat voor weergave of logboekregistratie.
- Lijst met leden: Enum.GetValues โโen Enum.GetNames retourneren elke waarde of naam, wat handig is bij het vullen van menu's of het valideren van invoer.
Wanneer een enum een โโcombinatie van keuzes moet weergeven in plaats van รฉรฉn enkele keuze, pas dan het Flags-attribuut toe en geef elk lid een macht van twee, zoals 1, 2, 4 en 8. Je kunt de leden vervolgens combineren met de bitwise OR-operator en met de HasFlag-methode controleren of een specifieke optie aanwezig is.
Deze conversietechnieken zorgen ervoor dat een enum probleemloos kan worden omgezet tussen leesbare namen, opgeslagen getallen en gecombineerde vlaggensets.ping De rest van het programma is zowel typeveilig als gemakkelijk te volgen.


