- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第08章枚举和结构
枚举和结构
目 标
学习完本章之后,你应该能够掌握以下概念:
什么是枚举
如何定义枚举
如何使用枚举
什么是结构
如何对结构进行初始化
如何定义结构的方法
结构和类的区别
引 言
枚举和结构是两个不同的概念,在程序中也有很多的应用。这两类概念在其他的语言中都有应用,在面向对象的概念之前就已经出现。本章将针对这两个类型进行分门别类的介绍。
枚举
下面将要介绍另一种常用而又简单的变量类型——枚举。枚举和整数有很多相似性,在某些方面又类似于数组,读者可以对比学习。
什么是枚举
枚举是一个指定的常数,其基础类型可以是除char外的任何整型。如果没有显式声明基础类型,则使用Int32。编程语言通常提供语法来声明由一组已命名的常数及其值组成的枚举。
枚举(enum)是值类型的一种特殊形式。枚举从System.Enum继承而来,并为基础基元类型的值提供替代名称。枚举类型有名称、基础类型和一组字段。基础类型必须是一个内置的有符号(或无符号)整数类型(如Byte、Int32或UInt64)。手段是静态文本字段,其中的每一个字段都表示常数。同一个值可以分配给多个字段。出现这种情况时,必须将其中某个值标记为主要枚举值,以便进行反射和字符串转换。
C#中可以将基础类型的值分配给枚举,反之亦然(.NET运行库不要求强制转换)。C#中可创建枚举的实例,并调用system.Enum的方法以及对枚举的基础类型定义的任何方法。但是,.NET中的某些语言可能不允许在要求基础类型的实例时作为参数传递枚举,反之亦然。
对于枚举还有以下附加限制: .
它们不能定义自己的方法
它们不能实现接口
它们不能定义属性或事件
读者可能对如此复杂的定义和描述感到困惑,事实上通常的应用较为简单。下面将讲到枚举的定义。
枚举的定义
枚举的定义和其他类型的定义一样简单。设想以下场景,在程序中需要应用到变量来表示每周的7天分别是星期几。这时就可以使用枚举来对其进行定义:
enum DayInwWeek
{
Sunday,Monday,Tuesday,Wenesday,Thursday,Friday,Saturday
}
上述代码便定义了一个表示一周中某天是星期几的枚举变量。
事实上,.NET早已为开发人员提供了一个实现此功能的枚举。此处的实例仅仅是为了讲解枚举的定义。.NET中该枚举为System.DayOfWeek。可以看到,类似于System.DayOfWeek的这种变量都可以用枚举来定义。通常这种变量相对固定,如每周只有周日到周六这7天。同时这种变量定义方式可以减少错误,如通过DayOfWeek声明一个变量只能限制在其预先定义的7种之内,而不会出现星期八这种怪诞的变量。
在默认情况下枚举中定义的值是根据定义的顺序从0开始顺序递增的,如上例中Tuesday对应为2,但可以通过自定义改变这种默认的情况。
如下代码演示了这种特殊的情况,此代码定义了一个用于表示方向的枚举,分别用于表示东、南、西、北。
enum MyDirection
{
East = 1,
South = 2,
West = 3,
North = 4
}
枚举的使用
下面通过一个简单的例子使用上面的定义用于表示方向的枚举,代码如下:
using System;
using System.Collection.Generic;
using System.Text;
namespace Example8_1
{
class Program
{
static void Main(string[] args)
{
//分别定义4个方向枚举类型的变量,表示不同的方向。
MyDirection m_dirl1 = MyDirection.East;
MyDirection m_dir2 = MyDirection.South;
MyDirection m_dir3 = MyDirection.West;
MyDirection m_dir4 = MyDirection.North;
//输出其内容和转换为整数后的值。
Console.WriteLine(m_dir1);
Console.WriteLine(Convert.ToIn
您可能关注的文档
最近下载
- 2025年江苏省公务员省考《行测》联考-部分真题(A类).pdf VIP
- 校园消防安全台账范本.docx
- 2024版加油站安全生产管理台账样本.doc VIP
- 精品解析:江苏省南京市玄武外国语学校、科利华中学2022-2023学年八年级下学期期中语文试题(解析版).docx VIP
- PC工法桩专项施工方案 .doc
- foreign language classroom anxiety.pdf VIP
- JT_T 410-2022CN交通运输行政执法标识.pdf
- 标准图集-22TJ310装配式钢筋桁架楼承板系列产品-下册.pdf VIP
- 汽车基础知识在线试题答案2.pdf VIP
- 地质勘查坑探规范.pdf VIP
文档评论(0)