- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第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
您可能关注的文档
最近下载
- 《海洋科学导论》第1章-绪论-海洋探索史.pptx
- GB50367-2013 混凝土结构加固设计规范.pdf
- 湖南省名校联考2024-2025学年高二上学期12月大联考英语试题含答案.docx VIP
- 橙色插画风《 糖果屋》童话故事PPT模板.pptx
- 国有企业职工国有企业人事主管岗面试题库参考答案和答题要点.docx VIP
- 博莱特空压机使用说明书.pdf
- 宜家供应链案例分析.docx VIP
- 计算机毕业设计java图书借阅系统ssmjsp论文.docx
- 年辽宁省高考作文分析与优秀范文.doc VIP
- 苏少版美术四年级下册 12.儿歌与童话 课件 (19张PPT)(含音频+视频).pptx VIP
文档评论(0)