C#学习日记11—数据类型 之 枚举(enum)类型

   前面我所介绍的全都是值类型 ,写这么多了,我总结以下什么叫值类型 。简单的说,该类型的变量直接存储所包含的值。这里我们与c语言中的字符串相对比一下,char ch[6] = “hc666”; 老师说过这里其实是用ch来引用“hc666”的地址,通过访问地址来访问数据。string也是一样,因此c#中的字符串 string 就是引用类型,而不是值类型。。而struct 类型却不是这样,通过直接赋值来改变变量存储内容,因此它是值类型。

值类型 之 枚举(enum)类型:

      枚举(enum): 实际上是为一组在逻辑上密不可分的整数值提供便于记忆的符号。  举个例子来说吧,比如到了星期天了,我买了张电影票取看电影,座位号一看挺好—66号,按照号码我找到了位置,很好的一个位置—第2排第5列,于是愉快的看完了电影。其实这个66号在我所在的放映室里对映的就是  第2排第5列,这就叫一个枚举。

声明枚举(enum)类型变量:

enum   变量名                   {                   标识符列表                 } ;

注意:

    标识符列表中,元素与元素之间用 , 逗号分隔;

     枚举列表中的每个符号代表一个整数值,一个比他前面符号大的整数值,默认情况下,第一个枚举符号代表0,当然也可以修改:

using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;    namespace Test  {      class Program      {          //定义 enum 类型 以0开始递增          enum weekday              {                  Sun, Mon, tue, Wed, thu, Fri, Sat    //若要改变默认值只需  (Sun = 2, Mon, tue, Wed, thu, Fri, Sat)以2开始递增+1              };            static void Main(string[] args)          {              weekday wek;              Console.WriteLine("输入0~6一个数字: ");              int i = int.Parse(Console.ReadLine());                wek = (weekday)i;     //强制类型转换,将int类型转化为 weekday 类型                Console.WriteLine("{0} 是 {1}", i, wek);            }      }  }

我输入一个0:

497.png

   对于代码中出现的 强制类型转换 我会在后面的 隐式转换与显示转换  中具体写出,现在就不做介绍了。

 

结构(struct)类型 与 枚举(enum )类型的比较:

         我有个同学他总是 Struct类型 与 enum类型 傻傻分不清,有时候写出这样的错误代码来了:

enum  wek{     int   a,b,c;   string  d,e,f;}

 

 

   为了避免以上的错误,这里我就说说它们之间的区别吧:在说 struct类型 的时候我已经提到了它里面的数据类型可以是多个不同类型的,换句话说,Struct类型是由不同类型的数据组成的一组新类型,结构类型变量的值是由各个成员的值组合而成。比如:

  Struct   wek{      public  int   a  = 1;     public  int   b = 2;}

定一个变量  wek  w;   此时的 w 既可以用来表示  a 的值是1 (w.a),也可以表示 b 的值是 2(w.b)

      而枚举(enum)类型 则不同,枚举类型的变量在某一时刻只能取枚举列表中某一个元素的值,比如:前面我编写的enum weekday 的程序中wek 在某一时刻只能表示一个值 ,它不能在同一时刻既表示 Sun 也表示 Mon ,

  wek = (weekday)2; 此时wek 只能表示Tue,不能表示其它的了。

 

以上就是C#学习日记11—数据类型 之 枚举(enum)类型的内容,更多相关内容请关注PHP中文网(www.php.cn)!

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1431958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 05:59:49
下一篇 2025年12月8日 07:19:34

相关推荐

  • C#学习日记12—数据类型 之 引用类型(前言)

     前面我们学习完了c#中简单的数据类型—-值类型,后面学习c#中另一个数据类型—-引用类型, “引用” 这个词在这里的意思是,该类型的变量不直接存储所包含的值,而是指向他所要存储的值,也就是说 引用类型储存的是变量的地址 。c#中的引用类型有4种:  …

    好文分享 2025年12月17日
    000
  • C#学习日记13—类(Class)的声明与定义

     类作为面向对象的灵魂,在c#中有着相当广泛和深入的应用,对类的深度掌握自然是我们学习c#重要的一个环节.有关类的意义上一篇  c#学习日记12—引用类型 中已经给出了,这里就不再重复了.说到 类 就不得不说下与之息息相关的内容—-对象. 类与对象:            类…

    2025年12月17日
    000
  • C#中遍历各类数据集合的方法总结

    c#中遍历各类数据集合的方法,这里自己做下总结: 1.枚举类型  //遍历枚举类型Sample的各个枚举名称 foreach (string sp in Enum.GetNames(typeof(Sample))) { ary.Add(sp); } //遍历枚举类型Sample的各个枚举值 fore…

    好文分享 2025年12月17日
    000
  • C#数据绑定控件中的DataSource属性浅谈

    有的时候,你在编程进入一定阶段,进一步提升很困难的境况之下,不妨回过头来看看基础的东西,或许你会有新的受益,或许能够真正的体会到孔夫子所谓的“温故而知新”的真正内涵。常用的c#数据绑定控件有:repeater、datalist、gridview、detailsview等,在这里我拿repeater来…

    好文分享 2025年12月17日
    000
  • C++设计模式浅识策略模式

    策略模式定义:  定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。  策略模式包含如下角色: context:环境类 strategy:抽象策略类 concretestrategy: 具体策略类 uml类图:  测试用例 [code]int mai…

    2025年12月17日
    000
  • C++设计模式浅识单例模式

    什么是单例模式?  保证一个类只有一个实例,并提供一个访问它的全局访问点。【dp】  让类的自身负责保存它的唯一实例,这个类保证没有其他实例可以被创建,并且此类可以提供一个访问该实例的方法。【dp】  什么时候需要单例模式?  程序只需要一个方法控制某项功能,不允许创建第二个此功能。比如:银行使用的…

    好文分享 2025年12月17日
    000
  • C#中OpenFileDialog和PictrueBox的用法分析

    本文实例讲述了c#中openfiledialog和pictruebox的用法。分享给大家供大家参考。具体用法分析如下: 先来看看这段代码: string resultFile = “”;OpenFileDialog openFileDialog1 = new OpenFileDialog();ope…

    好文分享 2025年12月17日
    000
  • C#中的switch case使用介绍

    在c#中  switch(type) { case tpye1: break; case tpye2: break; case tpye3: break; case tpye4: break; }; 其中type可以是数字,也可以是字符串;  以上就是C#中的switch case使用介绍的内容,更…

    2025年12月17日
    000
  • C# 判断两张图片是否一致的快速方法

    c# 判断两张图片是否一致的快速方法 #region 判断图片是否一致 /// /// 判断图片是否一致 /// /// 图片一 /// 图片二 /// 是否一致 public bool IsSameImg(Bitmap img, Bitmap bmp) { //大小一致 if (img.Width…

    好文分享 2025年12月17日
    000
  • C# web api返回类型设置为json的两种方法

    web api写api接口时默认返回的是把你的对象序列化后以xml形式返回,那么怎样才能让其返回为json呢,下面就介绍两种方法: 方法一:(改配置法)  找到global.asax文件,在application_start()方法中添加一句:  GlobalConfiguration.Config…

    好文分享 2025年12月17日
    000
  • c#生成缩略图不失真的方法实例分享

    c#生成缩略图不失真的方法实例分享 /// /// 获得缩微图/// /// public bool GetThumbImg(){try{string imgpath; //原始路径 if(imgsourceurl.IndexOf(“\”,0)<0) //使用的是相对路径 {imgpath =…

    好文分享 2025年12月17日
    000
  • c#将Excel数据导入到数据库的实现代码

    c#将excel数据导入到数据库的实现代码 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: 代码: using System;using System.Collections.Generic;using System.Linq;using System.Web;using Sy…

    2025年12月17日 好文分享
    000
  • C#实现上传照片到物理路径,并且将地址保存到数据库的小例子

    c#实现上传照片到物理路径,并且将地址保存到数据库的小例子 效果: 思路:首先,获取图片物理地址,然后进行判断将图片保存到文件夹下,再将图片的信息保存到数据库。数据库: create table image1 ( ID int identity(1,1) primary key, ImageName…

    2025年12月17日
    000
  • C#中的FileUpload 选择后的预览效果具体实现

    c#中的fileupload 选择后的预览效果  实现方法:  HTML:  JS:  function onFileChange(sender) { document.getElementById(“imgDimensionalPic”).src = window.URL.createObject…

    2025年12月17日
    000
  • c#加密类使用方法示例

    c#加密类使用方法示例 using System;using System.IO;using System.Text;using System.Security.Cryptography;using System.Web;namespace Encryption.App_Code{ /// /// …

    好文分享 2025年12月17日
    000
  • C#操作Excel数据增删改查示例

    c#操作excel数据增删改查。  首先创建exceldb.xlsx文件,并添加两张工作表。  工作表1:  userinfo表,字段:userid、username、age、address、createtime。  工作表2:  order表,字段:orderno、productname、quan…

    好文分享 2025年12月17日
    000
  • 通过C#动态生成图书信息XML文件

    通过c#动态生成图书信息xml文件(books.xml),文件如下:  Harry Potter J K. Rowling 2005-08-15 29.99 Learning XML Erik T. Ray 2003-10-18 39.95 方法1:使用StringBuilder拼接XML  ///…

    好文分享 2025年12月17日
    000
  • C#获取当前页面的URL示例代码

    本实例的测试url:http://www.mystudy.cn/web/index.aspx  1、通过c#获取当前页面的url  string url = Request.Url.AbsoluteUri; //结果: http://www.mystudy.cn/web/index.aspx str…

    好文分享 2025年12月17日
    000
  • C++设计模式浅识装饰模式

    装饰模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。  装饰模式的四个角色: 组件类:component 具体组件类:coneretecomponent 装饰类:decorator(从外类来扩展component类的功能,但对于component来说是无需知道d…

    好文分享 2025年12月17日
    000
  • C++设计模式浅识迭代器模式

    迭代器模式:提供一中方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。【dp】 四个角色: iterator迭代器抽象类: 用于定义得到开始对象,得到下一个对象、判断是否到结尾、当前对象等抽象方法,统一接口。 concreteiterator具体迭代器类: 继承iterator,实现…

    好文分享 2025年12月17日
    000

发表回复

登录后才能评论
关注微信