枚举和结构

1.  枚举

    a)    枚举类型是一种特殊的值类型,它用于声明一组具有相同性质的常量,

    b)    声明枚举

    在C#中使用关键字enum类声明枚举,其形式如下。

enum  枚举名

{

     List1=value1,

     List2=value2,

     List3=value3,

    ….

     ListN=valueN;

}

 

    其中,大括号{}的内容为枚举值列表,每个枚举值均对应一个枚举值名称,value1~valueN为整数数据类型,List1~ListN则为枚举值的标识名称。

如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始, 顺次赋给标识符0, 1, 2, ...。但当枚举中的某个成员赋值后, 其后的成员按依次加1的规则确定其值。

  c)    枚举成员访问

    你可以在任何需要使用符号常量的位置使用枚举类型, 但是如果你想得到枚举类型所代表的整型值就得对其转型,语法:

          枚举名.成员名

          (int)枚举名.成员名

2.  结构

    结构是C#程序员用来定义自己的值类型的最普遍的机制。结构比枚举更强大,因为它提供函数、字段、构造函数、操作符和访问控制。结构类型也是先声明后使用。声明结构类型时要使用struct关键字

    A)  定义结构

          语法: struct  结构名 { //结构成员定义 }

          例子:struct MyCat

                {   

              public int age;

                    public string name;

                }

    B)  结构成员

          结构成员可分为两类,一是实例成员,一是静态成员。静态成员通过结构名来访问,而实例成员的访问是通过创建结构类型的变量来访问结构的实例成            员。结构的构造函数必须带参数

结构名  变量名;

3.  结构和枚举的区别:

  1)结构中的成员可以赋值;枚举是取值,只读的
  2)结构是跟类很相似的一种数据结构;而枚举是一个有限的整数序列
  3)结构是值类型,当显示的定义带参的构造函数时,默认的无参构造函数依然存在,结构不能继承,但可实现接口;
而枚举也是值类型,它是一组已命名的数值常量,它有助于定义具有一组特定值的数据类型,主要总结为 :确定并有限,不会出现非安全值。
  4)定义结构的关键字是:static ;定义枚举的关键字是:enum 

4.类和结构的区别:

    1)    结构属于值类型,结构的值是直接存储在栈空间中的;

                     类属于引用类型,类的值是存储在托管堆中,在栈空间中保存指向该托管堆的内存地址。

    2)    结构当显示的定义带参的构造函数时,默认的无参构造函数依然存在;

           类当显示的定义带参的构造函数时,默认的无参构造函数就不存在了

    3)    结构不能继承,但可实现接口;类可以继承,也可以实现接口。

    4)    结构的关键字:static;类的关键字是class

 

转载于:https://www.cnblogs.com/slwx1514/p/10030443.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464141.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

_beginthreadex 一定要自己写 CloseHandle 可以不用 _endthreadex

_beginthreadex 一定要自己写 CloseHandle 可以不用 _endthreadex 天哪,好久不 写忘记了.一直记得线程的句柄只是 createthread 才需要关闭,可能是我用 AfxBeginThread 太多了. 以后直接这样好了 ::CloseHandle((HANDLE)_beginthreadex(NULL, 0,threadRun_client,(void *)tp, 0…

嵌入式界的顶流开源项目,RetroPie 是怎么设计的?

RetroPie 是啥?一个用于将树梅派等板子转变为游戏机的开源项目。树梅派上运行 RetroPieGithub:https://github.com/RetroPie/RetroPie-Setup第一感觉,基于 Shell,有啥牛逼的。但仔细想想,一个简单的项目能获得 9.4K 的 Star&#…

java线程池,信号量使用demo

直接上代码 package org.jimmy.threadtest20181121;import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.Semaphore; import java.util.concurrent.TimeUnit;public class TestThread20181128 {public Semaphore semaphore new Semaphore(2, true)…

使用epoll+时间堆实现高性能定时器

在开发Linux网络程序时,通常需要维护多个定时器,如维护客户端心跳时间、检查多个数据包的超时重传等。如果采用Linux的SIGALARM信号实现,则会带来较大的系统开销,且不便于管理。 本文在应用层实现了一个基于时间堆的高性能定时器&…

Spring JDBC最佳实践(2)

2019独角兽企业重金招聘Python工程师标准>>> 使用DataSourceUtils进行Connection的管理 由上节代码可知,JdbcTemplate在获取Connection的时候,并不是直接调用DataSource的getConnection(),而是调用了如下的代码: Connection con …

我所感受到的上海

大家好,文章转自张老师的公众号,文章的我不是小编本人,小编现居深圳,刚接受了一场大雨的洗礼。前两天公众号抽奖的书籍已经发货,中奖的朋友们注意查收。当格蠹园里的大灰反复犹豫到底应该在哪里生产的时候,…

时间操作(Java版)—获取给定日期N天后的日期

版权声明:本文为博主原创文章。未经博主同意不得转载。https://blog.csdn.net/wangshuxuncom/article/details/34896777 获取给定日期N天后的日期import java.util.Calendar;public class Test {public static void main(String[] args) {System.out.println(new Te…

设计模式学习笔记五——Prototype模式

动机:使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。某些结构复杂对象面临着剧烈变化,但拥有比较稳定一致的接口,如何隔离出这些易变对象,使客户程序不随之改变?场景:Th…

2011年最佳代码

2019独角兽企业重金招聘Python工程师标准>>> 2011年最佳代码 try { if(you.bevieve(it) true || you.believe(it) false) { I.believe(it); } } catch(Exception ex) { throw new Exception("Its a miracle!"); } finally { it.justHappened(); } 转载于…

使用Epoll 在 Linux 上开发高性能应用服务器

epoll是Linux提供一种多路复用的技术,类似各个平台都支持的select,只是epoll在内核的实现做了更多地优化,可以支持比select更多的文件描述符,当然也支持 socket这种网络的文件描述符。Linux上的大并发的接入服务器,目前…

昨晚两点睡

深圳下雨两天,我们居家办公两天,不过奇怪的事情是,这两天我都到公司上班,昨天早上没有下雨,我想着应该要去公司,结果到了公司才知道原来今天可以居家办公。不过,在公司才有上班的感觉&#xff0…

hashmap详解

一.hashmap的数据结构 HashMap采取数组加链表的存储方式(哈希表)来实现。亦即数组(散列桶)中的每一个元素都是链表 二.hashmap的构造函数 HashMap():构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。 HashMap(int initia…

最近忙,三个字

最近忙,三个字 转载于:https://www.cnblogs.com/Liunsh/archive/2007/06/13/782352.html

书籍推荐-记这几年看的书

这几年看了不少书,大部分是自掏腰包,看一本好书是享受,我很喜欢这种感觉。 这些是我这几年看书的一些心得,对于一些新手来说,可能有点帮助。 这几年一直在走技术路线,所以看的大部分都是技术方面的书籍&…

不复位MCU直接调试运行程序,让bug闻风丧胆

大家周末好呀,文章转自bug菌的公众号,文章介绍步复位情况下调试bug,希望对大家有用。1调试窘境经常有朋友在开发中遇到这样的窘境,当单片机程序运行异常以后,由于调试信息做得并不是很全面,导致相应的问题场…

数据库设计中的14个技巧

数据库设计中的14个技巧 1. 原始单据与实体之间的关系   可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对 应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原…

游三圣乡山中湖岛有感

游三圣乡山中湖岛有感——代腾飞 2007年6月10日 于成都池塘水绿萍飘荡柳絮随风四飞扬独坐湖亭把歌唱夕阳西下断愁肠 转载于:https://www.cnblogs.com/daitengfei/archive/2007/06/26/795914.html

这次比opencv快⑥倍!!!

打败opencv ,哦,是快了3倍上回书说道,我用汇编neon实现去畸变算法比opencv快3倍,这都不算啥,这次新增了透视变换算法,二者加起来比opencv快6倍!拭目以待吧。啥玩意是透视变换?相信你们都开过高级…

数据和数据类型

一、什么是数据: 数据(date)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未加工的原始素材。 1)数据是信息的表现形式和载体,可以是符号、文字、数字、语音、图像、视频等。数据和信息是不可分离…

TCP/UDP优化设置总结以及MTU的相关介绍

TCP/IP协议涉及到四层,从底层到上层异常为:链路层,网络层,传输层,应用层。    其中以太网(Ethernet)的数据帧在链路层    IP包在网络层    TCP或UDP包在传输层    TCP或UDP中的数据&…