C# 中的枚举

PHPz
发布: 2024-09-03 15:15:06
原创
1013 人浏览过

Enum是C#中的保留关键字,代表枚举。枚举是 C# 中的用户定义类型,它保存一组命名常量。集合中的每个常量都有一个值(默认情况下为整数)。可以通过名称和值来访问常量。因此,枚举中的名称不能重复。枚举的语法很简单。它以关键字 enum 开头,后跟一个变量名和一组用大括号括起来的命名常量。当然,它以分号结尾。

语法:

enum <enum_name> {<set_of_named_constants>};
登录后复制

示例:

代码:

enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
enum Month { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };
登录后复制

C# 中枚举的工作

枚举在 C# 中有一个底层类型。这意味着枚举中的每个常量都将分配有一个基础类型的值。 C# 中枚举的默认基础类型是整数。

在上面的枚举 Day 中,我们声明了七个常量。它有一个默认的整数基础类型。因此,每个常量都会分配一个整数值。默认情况下,该值从 0 开始。因此,Sun 将被分配为 0;周一将分配 1 个,周二将分配 2 个,依此类推。

让我们再举一个例子。我们将值 1 分配给 Sun。这将强制编译器从 1 而不是 0 开始赋值。然后,我们将值 8 赋给 Thu。然后编译器会从 8 开始继续赋值。

示例#1

代码:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
};
public static void Main()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine((Day)i);
}
}
}
登录后复制

输出:

C# 中的枚举

现实世界的例子可以是客户旅程中的各个阶段。当然,所有常量都可以单独声明并为其分配相应的整数值,但是使用枚举可以消除记住每个阶段的整数值的麻烦,并使代码更容易理解。

示例#2

代码:

using System;
public class Program
{
enum ClientJourney
{
Introduced = 1,
UnderReview = 2,
Reviewed = 3,
Documentation = 4,
Onboarded = 5,
Declined = 6,
Deboarded = 7
};
public static void Main()
{
Console.WriteLine("The various stages in the journey of a client are:\n");
foreach (string str in Enum.GetNames(typeof(ClientJourney)))
{
Console.WriteLine(str);
}
}
}
登录后复制

输出:

C# 中的枚举

C# 中的枚举方法

下面给出了 C# 中的枚举方法:

1. GetName(类型, Int32)

GetName 方法返回映射到枚举中指定值的命名常量。如果该值没有命名常量,则返回一个空字符串。

此方法需要两个参数 - 一个是类型,即枚举本身,另一个是指定的值。

在上面的 Days 示例中,我们将通过 GetName 方法打印命名常量。

代码:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
}
;
public static void Main()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine(Enum.GetName(typeof(Day), i));
}
}
}
登录后复制

输出:

C# 中的枚举

2.获取名称(类型)

在上面的示例中,我们必须使用 for 循环来检索枚举的所有命名常量。当我们需要单个或有限数量的命名常量时,GetName 方法更有用。

我们还有另一个方法 GetNames() 来获取所有命名常量。它以枚举作为输入参数。

在上面的 Days 示例中,我们将通过 GetNames 方法打印命名常量。

代码:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
}
;
public static void Main()
{
foreach(string namedConstant in Enum.GetNames(typeof(Day))){
Console.WriteLine(namedConstant);
}
}
}
登录后复制

输出:

C# 中的枚举

3. 获取值(类型)

GetValues() 方法用于获取每个枚举的命名常量的底层映射值。

在上面的 Days 示例中,我们将通过 GetNames 方法打印命名常量。

代码:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
}
;
public static void Main()
{
foreach (int i in Enum.GetValues(typeof(Day)))
{
Console.WriteLine(i);
}
}
}
登录后复制

输出:

C# 中的枚举

C# 中的枚举规则

下面给出了 C# 中枚举的规则:

  • 枚举是一种类型,而不是变量/常量/方法。
  • 枚举命名的常量不能重复。它们必须是独一无二的。
  • 枚举的底层类型不能是 char。
  • 枚举的默认基础类型是整数。
  • 默认情况下,分配给枚举命名常量的值从 0 开始,每个连续命名的常量增加 1。

C# 中枚举的优点

以下是提到的优点:

  • 枚举是一种非常好的编码实践。它们用于定义应用程序或程序的常量集。因此,该集合保持不变并避免程序中的混乱,特别是当它是涉及多个开发人员的大型应用程序时。
  • 可以使用枚举的场景有很多。一周中的几天、一年中的月份、温度换算率、时区换算系数或应用程序的任何主表数据。这使得代码更具可读性和更容易理解。

结论

至此,我们就看到了C#中enum的使用。我们已经了解了它的工作原理以及它的实际用途。我们了解使用枚举时要遵守的规则。有些方法可以帮助我们访问和格式化枚举。建议在代码中尽可能多地使用枚举。这将帮助您观察编码良好实践并学习枚举。

以上是C# 中的枚举的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!