Kaip gauti enum pavadinimą iš reikšmės C# kalba
Vienas iš populiarių enum naudojimo atvejų - gauti enum vardą iš jo reikšmės.
Panagrinėkime realaus pasaulio pavyzdį, paprastai duomenų bazėje laikysime enum reikšmes, t. y. laikysime tik sveikųjų skaičių reikšmes
O nuskaitę enum reikšmę iš duomenų bazės turime ją konvertuoti atgal į jos enum vardą.
Yra du būdai, kaip iš reikšmės gauti enum vardą C#**
On this page
1 sprendimas: naudojant Enum.GetName()
C# Enum.GetName()
funkcija priima du parametrus enum type ir value ir grąžina enum pavadinimą.
Paimkime pavyzdį LogLevel
Enum
public enum LogLevel
{
ERROR=1,
WARN=2,
INFO=3,
DEBUG=4
}
Dabar perduosime enum reikšmę Enum.GetName()
, kad gautume enum pavadinimą
var enumValue = 1;
var enumName = Enum.GetName(typeof(LogLevel),enumValue);
Console.WriteLine($"The name of enum value: {enumValue} is {enumName}");
/**
Here is the output:
The name of enum value : 1 is ERROR
**/
Jei naudojate C# .Net 6
versiją, Enum.GetName()
metodui galite perduoti tik enum reikšmę (cast į enum).
/** get enum name from value in .Net 6**/
var enumName6 = Enum.GetName((LogLevel)enumValue);
2 sprendimas: naudojant tipo atvaizdavimą
Kitas būdas yra, Konvertuoti enum reikšmę į enumeration narį naudojant liejimą ir tada naudoti ToString()
metodą.
Tai paprastas būdas, kuriam nenaudojamos jokios C# Enum
integruotos funkcijos.
Pirmiausia konvertuokite enum reikšmę į enumeration member ir tada naudokite ToString()
metodą.
var enumValue = 2;
//Convert enum Value
var enumDisplayValue = (LogLevel)enumValue;
var enumName = enumDisplayValue.ToString();
Console.WriteLine($"The name of enum value: {enumValue} is {enumName}");
/**
Here is the output
The name of enum value : 2 is WARN
**/
Santrauka
Šioje pamokoje sužinojome įvairių būdų, kaip gauti enum vardo reikšmę c# kalba
- Perduodami enum tipo ir vertės parametrus
Enum.GetName()
metodui - Ir naudojant tipo atvaizdavimą į atitinkamą enum tipą