C#中可枚举类型详解
概述
C#中的枚举类型是一种特殊的值类型,用于定义一组相关的命名常量。枚举类型的成员可以是数字常量、字符串常量等,它为开发人员提供了一种更加方便、更加具有可读性和可维护性的编程方式。
定义枚举类型
在C#中定义枚举类型非常简单,只需要使用enum
关键字即可。
enum WeekDay
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
以上代码定义了一个名为WeekDay
的枚举类型,它包含了七个成员:Monday
、Tuesday
、Wednesday
、Thursday
、Friday
、Saturday
和Sunday
。由于没有为每个成员指定数值,默认情况下,Monday
的值为0
,后续每个成员的值都会依次递增。
如果需要为每个成员指定数值,则可以在相应的成员名称后使用赋值语句进行初始化,如下所示:
enum WeekDay
{
Monday = 1,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
以上代码中,Monday
的值为1
,后续每个成员的值都会依次递增,如Tuesday
的值为2
,Wednesday
的值为3
,以此类推。
枚举类型的应用
作为方法参数
枚举类型可以作为方法参数,方便开发人员在方法调用时使用枚举成员来进行参数传递。例如,以下方法接受一个名为weekDay
的WeekDay
类型参数:
void PrintWeekDay(WeekDay weekDay)
{
switch (weekDay)
{
case WeekDay.Monday:
Console.WriteLine("星期一");
break;
case WeekDay.Tuesday:
Console.WriteLine("星期二");
break;
// ...
}
}
在调用该方法时,可以直接使用枚举成员进行参数传递:
PrintWeekDay(WeekDay.Monday);
作为返回值类型
枚举类型也可以作为方法的返回值类型,例如,以下方法返回一个WeekDay
类型的值:
WeekDay GetWeekDay(int day)
{
switch (day % 7)
{
case 0:
return WeekDay.Sunday;
case 1:
return WeekDay.Monday;
case 2:
return WeekDay.Tuesday;
// ...
}
}
该方法接受一个表示天数的整型参数,计算出该天数对应的星期几,并返回相应的枚举成员。
示例
using System;
namespace EnumExample
{
enum Gender
{
Male,
Female
}
class Person
{
public string Name { get; set; }
public Gender Gender { get; set; }
public override string ToString()
{
return $"Name: {Name}, Gender: {Gender}";
}
}
class Program
{
static void Main(string[] args)
{
Person p1 = new Person { Name = "Tom", Gender = Gender.Male };
Person p2 = new Person { Name = "Mary", Gender = Gender.Female };
Console.WriteLine(p1);
Console.WriteLine(p2);
}
}
}
以上代码中,定义了一个名为Gender
的枚举类型,包含两个成员:Male
和Female
。同时,定义了一个包含名字和性别属性的Person
类,并实例化了两个Person
对象,分别是Tom
和Mary
。在输出每个Person
对象时,分别调用了它们的ToString
方法,由于Person
类重写了ToString
方法,因此输出的是该对象的名字和性别信息。
输出结果:
Name: Tom, Gender: Male
Name: Mary, Gender: Female
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中可枚举类型详解 - Python技术站