📅  最后修改于: 2023-12-03 14:59:43.428000             🧑  作者: Mango
在 C# 程序中,枚举是一种常用的数据类型。通过枚举,我们可以定义一组具有固定值的常量。当需要在代码中引用这些常量时,我们可以直接使用它们的名称来代替相应的数值,从而提高代码的可读性和维护性。
但是,有时候我们也需要获取到枚举中对象的具体数值,例如在对枚举进行运算或者输出时。那么,这时候我们就需要知道如何在 C# 中获取枚举中对象的值。
在 C# 中,我们可以使用以下几种方式来获取枚举中对象的值:
我们可以将一个枚举类型的对象转换为其对应的整数类型,从而获取到枚举中对象的值。示例代码如下:
enum Weekday
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
Weekday weekday = Weekday.Monday;
int value = (int)weekday; // value = 0
需要注意的是,在进行枚举类型强制转换时,我们需要确保枚举中所有对象的值都可以被正确地表示为整数类型。
我们可以使用枚举类型的 GetValues 方法来获取一个包含所有枚举对象的数组,然后通过遍历数组来获取每个对象的值。示例代码如下:
enum Weekday
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
foreach (var weekday in Enum.GetValues(typeof(Weekday)))
{
int value = (int)weekday;
Console.WriteLine("{0}: {1}", weekday, value);
}
需要注意的是,由于 GetValues 方法返回的是 object 类型的数组,因此在使用时需要进行类型转换。
与 GetValues 方法类似,我们也可以使用枚举类型的 GetNames 方法来获取一个包含所有枚举对象的名称的数组,然后通过遍历数组来逐个获取每个对象的值。示例代码如下:
enum Weekday
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
foreach (var name in Enum.GetNames(typeof(Weekday)))
{
Weekday weekday = (Weekday)Enum.Parse(typeof(Weekday), name);
int value = (int)weekday;
Console.WriteLine("{0}: {1}", name, value);
}
需要注意的是,在使用 GetNames 方法时,我们需要使用 Enum.Parse 方法将字符串类型的名称转换为相应的枚举类型。同时,也要确保枚举中所有对象的名称都是有效的。
以上就是在 C# 程序中获取枚举中对象的值的几种方法。在实际开发中,我们根据具体的场景选择合适的方法,以便更加方便地处理枚举类型的数据。