.Net基础篇_学习笔记_第八天_复杂数据类型(常量/枚举/结构)
1.常量:
声明的常量的语法:
const 变量类型 变量名=值;
最大的特点就是,声明了常量后,就不能再被重新赋值。
2.枚举
语法:
[public] enum 枚举名
{
值1,
值2,
值3,
........
}
public:访问修饰符。公开的公共的,哪都可以访问。
enum:关键字,声明枚举的关键字
枚举名:要符合Pascal命名规范
enum枚举在main()函数中不能使用,所以将枚举声明到命名空间的下面,类的外面,表示这个命名空间下,所有的类都可以使用这个枚举。
枚举就是一个变量类型 ,int--double string decimal.
只是枚举声明、赋值、使用的方式跟那些普通的变量类型不一样。
枚举需要自己写,内部自己编辑。
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 第六天_流程语句
{
public enum Moon
{
阴,
晴,
圆,
缺
}
class Program
{
static void Main(string[] args)
{
Moon _moon = Moon.晴;
Console.WriteLine(_moon);
Console.ReadKey(); }
}
}
我们可以将一个枚举类型的变量跟int类型和string类型互相转换。
枚举类型与int类型转换
枚举类型默认从0开始,枚举类型默认依次递增。 region标签的使用。#region 标签名称 #endregion
枚举类型默认是跟int类型相互兼容的,所以可以通过强制类型转换的语法互相转换。
当转换一个枚举中没有的值的时候,不会抛异常,而是直接将数字显示出来。
枚举类型与string类型转换
所有类型都能转换成string类型
枚举同样也可以跟string类型互相转换,如果将枚举类型转换成string类型,则直接调用ToString().
三种转化方式:
Convert.int32(); int.parse();
int.TryParse();
Enum.Parse();//调用Parse()方法的目的就是让它帮助我们将一个字符串转换成对应的枚举类型。调用方法,需要告诉(提供给)方法一些必要的条件,即参数。
如果将字符串转换成枚举类型则需要下面这样一行代码:
(要转换的枚举类型)Enum.Parse(typeof(要转换的枚举类型),"要转换的字符串");
string s="0";
QQState state=(QQState)Enum.Parse(typeof(QQState),s);
如果转换的字符串是数字,则就算枚举中没有,也会不会抛异常。
如果转换的字符串是文本,如果枚举中没有,则会抛出异常。
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace _Enum
{
class Program
{ enum QQState
{
OnLine=,
OffLine,
Leave,
Busy,
QMe
} static void Main(string[] args)
{
bool b = true;
while (b)
{
Console.WriteLine("请输入您要选择的登陆状态:1--OnLine,2--OffLine,3--Leave,4--Busy,5--QMe");
string _input = Console.ReadLine();
switch (_input)
{
case "":
QQState s1 = (QQState)Enum.Parse(typeof(QQState), _input);
Console.WriteLine("您现在的登陆状态是{0}", s1);
break;
case "":
QQState s2 = (QQState)Enum.Parse(typeof(QQState), _input);
Console.WriteLine("您现在的登陆状态是{0}", s2);
break;
case "":
QQState s3 = (QQState)Enum.Parse(typeof(QQState), _input);
Console.WriteLine("您现在的登陆状态是{0}", s3);
break;
case "":
QQState s4 = (QQState)Enum.Parse(typeof(QQState), _input);
Console.WriteLine("您现在的登陆状态是{0}", s4);
break;
case "":
QQState s5 = (QQState)Enum.Parse(typeof(QQState), _input); //string转换成Enum类型
Console.WriteLine("您现在的登陆状态是{0}", s5);
break;
}
}
Console.ReadKey();
}
}
}
结构
可以一次性生成多个不同类型的变量;
[public] struct 结构名
{
成员;//变量. 》》字段 变量只能存储一个值,字段可以存储多个值; 字段要求必须在前面加个下滑线。
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 结构
{
public struct Person //结构和枚举本质是类型,需要单独定义一下;
{
public string _name;
public int _age;
public char _gender;
}
class Program
{
static void Main(string[] args)
{
Person liangPerson;
liangPerson._name = "liang";
liangPerson._gender = '男';
liangPerson._age = ;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 结构
{
public struct Person //结构和枚举本质是类型,需要单独定义一下;
{
public string _name;
public int _age;
public Gender _gender;
}
public enum Gender
{
男,
女
}
class Program
{
static void Main(string[] args)
{
Person liangPerson;
liangPerson._name = "梁俊可";
liangPerson._gender = Gender.男;//liangPerson._gender = '男';
liangPerson._age = ;
Console.WriteLine("我叫{0},我的性别是{1},我今年{2}岁了",liangPerson._name,liangPerson._gender,liangPerson._age);
Console.ReadKey();
}
}
}
.Net基础篇_学习笔记_第八天_复杂数据类型(常量/枚举/结构)的更多相关文章
- 【笔记目录2】【jessetalk 】ASP.NET Core快速入门_学习笔记汇总
当前标签: ASP.NET Core快速入门 共2页: 上一页 1 2 任务27:Middleware管道介绍 GASA 2019-02-12 20:07 阅读:15 评论:0 任务26:dotne ...
- Spring学习笔记 1. 尚硅谷_佟刚_Spring_HelloWorld
1,准备工作 (1)安装spring插件 搜索https://spring.io/tools/sts/all就可以下载最新的版本 下载之后不用解压,使用Eclipse进行安装.在菜单栏最右面的Help ...
- 学习笔记_J2EE_SpringMVC_03_注解配置_@RequestMapping用法
@RequestMappingde的用法 摘要: 主要介绍注解@RequestMapping的用法 一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMappi ...
- linux kernel学习笔记-5内存管理_转
void * kmalloc(size_t size, gfp_t gfp_mask); kmalloc()第一个参数是要分配的块的大小,第一个参数为分配标志,用于控制kmalloc()的行为. km ...
- Java学习笔记:03面向对象-接口_多态
1.类的概念 一堆具有共同的成员变量(属性)和成员方法(功能)对象的集合 2.接口的概念 接口是功能的集合,就是方法的集合 接口中只能定义方法,不能定义普通的成员变量 而且接口中的成员方法,必须是抽象 ...
- 《Python编程:从入门到实践》基础知识部分学习笔记整理
简介 此笔记为<Python编程:从入门到实践>中前 11 章的基础知识部分的学习笔记,不包含后面的项目部分. 书籍评价 从系统学习 Python 的角度,不推荐此书,个人更推荐使用< ...
- 第1课_Java基础知识【学习笔记】
摘要:韦东山android视频学习笔记 一.android系统的基本框架如图一所示,应用程序是用java编写的,底层驱动是用C代码写的,java与C怎么连接在一起主要是通过本地服务.android系统 ...
- Python学习笔记 (2.1)标准数据类型之Number(数字)
Python3中,数字分为四种——int,float,bool,complex int(整型) 和数学上的整数表示没啥区别,没有大小限制(多棒啊,不用写整数高精了),可正可负.还可表示16进制,以 0 ...
- Net基础篇_学习笔记_第十天_方法(函数)
方法(函数): 函数就是将一堆代码进行重用的一种机制.//解决冗余代码问题------方法出现了. 面向对象的三大特征:封装.继承.多态 函数的语法:[public] stati ...
- Net基础篇_学习笔记_第九天_数组_冒泡排序(面试常见题目)
冒泡排序: 将一个数组中的元素按照从大到小或从小到大的顺序进行排列. for循环的嵌套---专项课题 int[] nums={9,8,7,6,5,4,3,2,1,0}; 0 1 2 3 4 5 6 7 ...
随机推荐
- Spring入门(九):运行时值注入
Spring提供了2种方式在运行时注入值: 属性占位符(Property placeholder) Spring表达式语言(SpEL) 1. 属性占位符 1.1 注入外部的值 1.1.1 使用Envi ...
- RecyclerView实现混合布局
PS:好长时间不写博客了,起初是不知道写些什么,后来接触了到了很多东西,原本看似简单的东西,背后都隐藏着巨大的秘密,想handler的使用,一般情况下会引起内存泄漏问题,想着找到方法结局不就得了吗,可 ...
- 查看centos中的用户和用户组和修改密码
查看centos中的用户和用户组 1.用户列表文件: vim /etc/passwd/ 2.用户组列表文件: vim /etc/group 3.查看系统中有哪些用户: cut -d : -f /etc ...
- .net测试篇之单元测试/集成测试神器Autofixture
autofixture简介 有了单元测试框架加上Moq(后面我们会用单独章节来介绍moq),可以说测试问题基上都能搞定了.然而有了AutoFixture对单元测试来说可以说是如虎添翼,AutoFixt ...
- Ubuntu18设置mysql的sql_mode
原因: MySQL 5.7.5及以上功能依赖检测功能.如果启用了ONLY_FULL_GROUP_BY SQL模式(默认情况下),MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引 ...
- peewee
字段查看http://docs.peewee-orm.com/en/latest/peewee/models.html#fields 方法使用https://blog.csdn.net/qq_3962 ...
- centos6.8启动防火墙的艰辛过程
首先我的/etc/sysconfig/iptables文件没有. 解决办法: 1.任意运行一条iptables防火墙规则配置命令: iptables -P OUTPUT ACCEPT 2.对iptab ...
- 前端利器躬行记(2)——Babel
Babel是一个JavaScript编译器,不仅能将当前运行环境不支持的JavaScript语法(例如ES6.ES7等)编译成向下兼容的可用语法(例如ES3或ES5),这其中会涉及新语法的转换和缺失特 ...
- HDU 6055
题意略. 思路:要你找出所有正多边形,其实是唬人的,整点的正多边形只有正方形,具体证明可以参考 2017国家队论文集-<正多边形>-杨景钦 详见代码: #include<bi ...
- nsq源码分析
nsq的源码比较简单,值得一读,特别是golang开发人员,下面重点介绍nsqd,看完这篇文章希望你能对消息队列的原理和实现有一定的了解. nsqd是一个守护进程,负责接收,排队,投递消息给客户端,并 ...