枚举

枚举类型是类似自定义的一个类,类里放着你自己定义的常量,关键字enum。

enum Season{spring,summer,fall,winter}

想用这里的常量的话,首先把变量定义成 Season类型,然后再给它赋值

Season a=Season.fall;
Console.WriteLine(a);//输出结果 fall

枚举类型的每一个常量都对应着一个整数值。默认第一个是0,往后依次加1.

上面的spring相当于0,summer相当于1,fall相当于2,winter相当于3.

Console.WriteLine(int(a));//结果输出 2

默认常量是一个int的值,如果想声明成其他类型加 :数据类型

enum Season:short{spring,summer,fall,winter}

这样做的目的是为了节省内存。short比int占的字节要少。

枚举类型可以定义成8种整数类型的任何一种:byte,sbyte,short,ushort,int,uint,long,ulong.

结构

结构是值类型,数据直接存储在栈上。关键字是struct。不能手动写一个默认的无参构造函数,不然执行程序时会报错。

struct A
{
A()
{
//运行程序时会报错,显示“结构部能包含显式的无参数构造函数”(写完看不出错误,运行时才会报错)
}
}

出错原因:声明的结构始终会帮我们生成一个默认的无参构造函数。(类是只有在没写无参构造函数时才会默认生成)

结构的赋值

结构不能直接给变量赋值,除非加了静态关键字。

struct A
{
public static int x = ;//可以
public int y=; //报错 “结构中不能有实例字段初始值”
}

结构变量的使用

使用srtuct有两种方法:

1、实例化结构

 A a=new A();

2、直接创建

A a;

虽然这两种方式创建后使用的字段都在栈上,但他们的区别在于

.用new实例化的会调用构造函数给他里面的字段初始化。

.但直接创建的它里面的字段需要初始化后才能使用

 struct A
{
public static int x ;
public int y;
}
class B
{
public static void Main(string[] args)
{
A a=new A();
Console.WriteLine(A.x);// 结果为0
Console.WriteLine(a.y);// 结果为0
}

这里构造函数会为x,y进行初始化。一般默认初始成0、false、null

 struct A
{
public static int x = ;
public int y;
}
class B
{
public static void Main(string[] args)
{
A a; //声明A 值类型不需要new
a.y = ;//给y赋值
Console.WriteLine(A.x);//静态直接用 A 结果输出 5
Console.WriteLine(a.y);//输出6
}

因为A是值类型所以可以直接用 A a;但是由于没有调用构造器所以需要自己手动的行进初始化。不然会报错。

几点注意

.虽然结构不能用无参构造函数但是可以有含参的构造函数

.结构不能被继承,也不能当做父类

.结构可实现一个或多个接口

.结构成员不能指定为 abstract、virtual 或 protected

.结构不能定义析构函数

(12)C#枚举,结构的更多相关文章

  1. C#中常量\枚举\结构及数组的运用

    又一天结束了,今天在云和学院学习的知识下面继续来做总结. 一.常量\枚举\结构的运用 理论: 常量:const  类型 常量名 = 常量值 确定数量.确定值的几个取值:东西南北.男女.上中下. 枚举: ...

  2. C#学习笔记_12_枚举&结构体

    12_枚举&结构体 枚举 是一种数据类型 适用于某些取值范围有限的数据 语法: [访问权限修饰符] enum 枚举名 { 枚举值 } 枚举名遵循大驼峰命名法 枚举一般情况下是和switch c ...

  3. C#学习笔记12:枚举、结构、数组基础学习

    枚举:public enum MyEnum { 值1, 值2, 值3 } Public enum Season { 春, 夏, 秋, 冬 } 枚举的作用:规范用户的输入,枚举可以转换为int类型,可以 ...

  4. [C语言]进阶|结构类型: 枚举, 结构, 类型定义

    --------------------------------------------------------------------- 枚举: // main.c #include <std ...

  5. 5.Swift枚举|结构体|类|属性|方法|下标脚本|继承

    1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum  Celebrity{  case DongXie,XiDu,Nandi,BeiGai }  // 从左 ...

  6. Swift枚举|结构体|类|属性|方法|下标脚本|继承

    1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum  Celebrity{  case DongXie,XiDu,Nandi,BeiGai }  // 从左 ...

  7. C语言学习笔记--枚举&结构体

    枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下语法格式来声明: enum 枚举类型名字 {名字0,名字1,...,名字n}: 枚举类型名字通常并不真的使用,要用的是大括号里面的名字,因为 ...

  8. .Net基础篇_学习笔记_第八天_复杂数据类型(常量/枚举/结构)

    1.常量: 声明的常量的语法:const 变量类型 变量名=值;最大的特点就是,声明了常量后,就不能再被重新赋值. 2.枚举 语法:[public] enum 枚举名{ 值1, 值2, 值3, ... ...

  9. 前端学习笔记2017.6.12 HTML的结构以及xhtml、html、xml的区别

    HTML的结构 一个HTML文档可分为几个部分,如下图所示: DOCTYPE部分.head部分和body部分 DOCTYPE部分,这个很重要,可以理解为不同的DOCTYPE意味着不同的html标准,因 ...

随机推荐

  1. linux统计分析流量-wireshark

    wireshark是一款带界面的开源抓包工具,可以用来对系统流量进行统计分析. 安装 由于wireshark是带界面的,所以一般在界面环境下运行,可以通过yum安装: $ yum install -y ...

  2. h5布局之道(最终篇)

    大家好,时隔一年多了,前几篇探讨的rem布局后来又有改进不过一直没有想起来更新博客,rem布局淘宝用的也比较早,有兴趣的可以看看淘宝的flexible ,我的用法比较简单,原来一样,废话不说了直接上代 ...

  3. mysql一机多实例安装记录

    因为想研究mycat,所以需要安装多个mysql实例进行研究.限于没有多于计算机,只能在本机安装了.通过mysql文档,自己琢磨着安装成功! 目录结构如下: 其中one和two文件夹用来模拟数据库分库 ...

  4. Python利器一之requests

    Python利器一之requests 一.教程涉及开发语言.脚本.框架.数据库等内容 Python + requests 通过 pip 安装: pip install requests 通过 easy ...

  5. ESLint 代码检查规范

    目录 Airbnb Javascript Style Guide 引用 对象 数组 函数 箭头函数 类和构造器 模块 Iterators and Generators 变量 比较运算符 注释 空格 A ...

  6. android 继承ListView实现滑动删除功能.

    在一些用户体验较好的应用上,可以经常遇见   在ListView中  向左或向右滑动便可删除那一项列表. 具体实现  则是继承ListView实现特定功能即可. (1). 新建 delete_butt ...

  7. PHP路径相关 dirname,realpath,__FILE__

    ​比如:程序根目录在:E:\wamp\www 中 1.    __FILE__   当前文件的绝对路径 如果在index.php中调用 则返回  E:\wamp\www\index.php 下面再看一 ...

  8. 我与0xc000007b奋斗的日子

    自从新换了一台笔记本,就开始重装各种软件,就在将要开始软工课设的重要的日子里,我默默地在运行客户端时出现了一个这样的错误: 鉴于本人很废柴,自然不可能去查内存,所以开始各种度娘必应和谷歌,哦!原来应该 ...

  9. tomcat调优(Mark)

    http://blog.csdn.net/jinwanmeng/article/details/7756591

  10. 【bzoj3289】Mato的文件管理 离散化+莫队算法+树状数组

    原文地址:http://www.cnblogs.com/GXZlegend/p/6805224.html 题目描述 Mato同学从各路神犇以各种方式(你们懂的)收集了许多资料,这些资料一共有n份,每份 ...