Darbas su Enums C#
Pradedantiesiems išvardinti per enumą C# gali būti šiek tiek painu. Tai dažnai sukelia kompiliavimo laiko klaidas, jei tai daroma neteisingai. Norint efektyviai koduoti, labai svarbu suprasti, kaip teisingai kartoti enum reikšmes.
Šiame straipsnyje aptarsime paprastą metodą, kaip surašyti enum C# kalba, naudodamiesi pavyzdžiu, išryškinančiu bendrus spąstus ir teisingą metodą. Pabaigoje galėsite lengvai išvardyti bet kurį sąrašą.
komandą | apibūdinimas |
---|---|
Enum.GetValues(typeof(Suit)) | Nuskaito nurodyto sąrašo konstantų reikšmių masyvą. |
Enum.GetValues() | Grąžina visų sąrašo reikšmių masyvą. |
Cast<T>() | Konvertuoja IEnumerable elementus į nurodytą tipą. |
Console.WriteLine() | Į standartinį išvesties srautą įrašo nurodytus duomenis, po kurių nurodomas srovės linijos baigtuvas. |
foreach | Iteruoja per kolekciją arba masyvą, vykdydamas kiekvieno elemento kodo bloką. |
public enum | Apibrėžia sąrašą, atskirą tipą, susidedantį iš įvardytų konstantų rinkinio, vadinamo skaičiuotojų sąrašu. |
Išsamus Enum iteracijos paaiškinimas
Pateikti scenarijai parodo, kaip tinkamai surašyti enum C# kalba. Pirmasis scenarijus naudoja norėdami gauti visų reikšmių masyvą enum. Tada šis masyvas kartojamas su a kilpa, leidžianti programai vykdyti DoSomething(suit) metodas kiekvienai enum vertei. Šis metodas yra paprastas ir naudoja integruotus C# metodus, kad efektyviai tvarkytų enumus.
Antrasis scenarijus pasiekia tą patį tikslą, tačiau naudoja LINQ, kad būtų lengviau ir lengviau skaityti. Paskambinus , enum reikšmės perduodamos į tipo, leidžiant atlikti sudėtingesnes LINQ operacijas, jei reikia. The ciklas tada apdoroja kiekvieną kostiumą panašiu būdu, iškviesdamas DoSomething(suit) metodas kiekvienai enum vertei. Abu scenarijai yra būtini norint kartoti enumus ir išvengti įprastų spąstų, pavyzdžiui, enum tipo traktavimą kaip kintamąjį.
Enum reikšmių išvardijimas C#
C# naudojimas kartoti per Enum
using System;
using System.Linq;
public enum Suit
{
Spades,
Hearts,
Clubs,
Diamonds
}
public class Program
{
public static void Main()
{
foreach (Suit suit in Enum.GetValues(typeof(Suit)))
{
DoSomething(suit);
}
}
public static void DoSomething(Suit suit)
{
Console.WriteLine(suit);
}
}
Tinkamas eilių išvardijimas C#
LINQ naudojimas Enum iteracijai
using System;
using System.Linq;
public enum Suit
{
Spades,
Hearts,
Clubs,
Diamonds
}
public class Program
{
public static void Main()
{
var suits = Enum.GetValues(typeof(Suit)).Cast<Suit>();
foreach (var suit in suits)
{
DoSomething(suit);
}
}
public static void DoSomething(Suit suit)
{
Console.WriteLine(suit);
}
}
Enum metodų ir savybių supratimas
Be enums kartojimo, labai svarbu suprasti kitus naudingus metodus ir savybes, kurias suteikia enums C#. Vienas iš tokių metodų yra , kuris grąžina konstantos pavadinimą nurodytame sąraše, turintį nurodytą reikšmę. Tai gali būti ypač naudinga norint pateikti patogius enum reikšmių pavadinimus.
Kitas naudingas turtas yra , kuris patikrina, ar tam tikrame sąraše yra nurodyta reikšmė arba pavadinimas. Šis metodas yra patogus patvirtinimo tikslais, siekiant užtikrinti, kad nurodyta reikšmė iš tikrųjų yra apibrėžto enum rinkinio dalis. Šių metodų supratimas leidžia kūrėjams panaudoti visą enumo galią savo programose, užtikrinant tvirtą ir skaitomą kodą.
- Kaip gauti visus sąrašo pavadinimus?
- Naudokite norėdami gauti enum konstantų pavadinimų masyvą.
- Ar galiu konvertuoti eilutę į enum reikšmę?
- Taip, naudoti konvertuoti eilutę į atitinkamą enum reikšmę.
- Kaip galiu patikrinti, ar sąraše yra reikšmė?
- Naudokite norėdami patikrinti, ar sąraše yra konkreti reikšmė.
- Ar enums galima naudoti atliekant bitines operacijas?
- Taip, apibrėžiant enum su atributas, enums gali būti naudojami bitų operacijoms.
- Kaip sužinoti pagrindinį enum tipą?
- Naudokite gauti pagrindinį enum tipą.
- Kokia yra numatytoji enum reikšmė?
- Numatytoji sąrašo reikšmė yra reikšmė, susieta su nuliu, kuri paprastai yra pirmoji sąraše nurodyta reikšmė.
- Ar galiu kartoti enum pavadinimus, o ne vertes?
- Taip, galite naudoti kartoti per pavadinimus.
- Kaip galiu palyginti dvi enum vertes?
- Enum reikšmes galima palyginti naudojant standartinius palyginimo operatorius, pvz , , , ir >.
Apibendrinant galima pasakyti, kad norint išvardinti enumą C#, reikia suprasti teisingus metodus ir kalbos teikiamas savybes. Naudojant leidžia atlikti nesudėtingą iteraciją, o LINQ suteikia papildomo lankstumo. Užtikrinus tinkamą šių metodų naudojimą, išvengiama įprastų spąstų, pavyzdžiui, enum tipo traktavimas kaip kintamasis. Be to, pasitelkiant kitus enum metodus, pvz ir padidina jūsų kodo tvirtumą. Šių metodų įsisavinimas yra būtinas efektyviam C# programavimui, leidžiančiam efektyviai ir tiksliai tvarkyti enumus savo programose.