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基础篇_学习笔记_第八天_复杂数据类型(常量/枚举/结构)的更多相关文章

  1. 【笔记目录2】【jessetalk 】ASP.NET Core快速入门_学习笔记汇总

    当前标签: ASP.NET Core快速入门 共2页: 上一页 1 2  任务27:Middleware管道介绍 GASA 2019-02-12 20:07 阅读:15 评论:0 任务26:dotne ...

  2. Spring学习笔记 1. 尚硅谷_佟刚_Spring_HelloWorld

    1,准备工作 (1)安装spring插件 搜索https://spring.io/tools/sts/all就可以下载最新的版本 下载之后不用解压,使用Eclipse进行安装.在菜单栏最右面的Help ...

  3. 学习笔记_J2EE_SpringMVC_03_注解配置_@RequestMapping用法

    @RequestMappingde的用法 摘要: 主要介绍注解@RequestMapping的用法 一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMappi ...

  4. linux kernel学习笔记-5内存管理_转

    void * kmalloc(size_t size, gfp_t gfp_mask); kmalloc()第一个参数是要分配的块的大小,第一个参数为分配标志,用于控制kmalloc()的行为. km ...

  5. Java学习笔记:03面向对象-接口_多态

    1.类的概念 一堆具有共同的成员变量(属性)和成员方法(功能)对象的集合 2.接口的概念 接口是功能的集合,就是方法的集合 接口中只能定义方法,不能定义普通的成员变量 而且接口中的成员方法,必须是抽象 ...

  6. 《Python编程:从入门到实践》基础知识部分学习笔记整理

    简介 此笔记为<Python编程:从入门到实践>中前 11 章的基础知识部分的学习笔记,不包含后面的项目部分. 书籍评价 从系统学习 Python 的角度,不推荐此书,个人更推荐使用< ...

  7. 第1课_Java基础知识【学习笔记】

    摘要:韦东山android视频学习笔记 一.android系统的基本框架如图一所示,应用程序是用java编写的,底层驱动是用C代码写的,java与C怎么连接在一起主要是通过本地服务.android系统 ...

  8. Python学习笔记 (2.1)标准数据类型之Number(数字)

    Python3中,数字分为四种——int,float,bool,complex int(整型) 和数学上的整数表示没啥区别,没有大小限制(多棒啊,不用写整数高精了),可正可负.还可表示16进制,以 0 ...

  9. Net基础篇_学习笔记_第十天_方法(函数)

    方法(函数): 函数就是将一堆代码进行重用的一种机制.//解决冗余代码问题------方法出现了.            面向对象的三大特征:封装.继承.多态 函数的语法:[public] stati ...

  10. Net基础篇_学习笔记_第九天_数组_冒泡排序(面试常见题目)

    冒泡排序: 将一个数组中的元素按照从大到小或从小到大的顺序进行排列. for循环的嵌套---专项课题 int[] nums={9,8,7,6,5,4,3,2,1,0}; 0 1 2 3 4 5 6 7 ...

随机推荐

  1. 《深入理解Java虚拟机》- Java虚拟机是如何加载Java类的?

    Java虚拟机是如何加载Java类的?  这个问题也就是面试常问到的Java类加载机制.在年初面试百战之后,菜鸟喜鹊也是能把这流程倒背如流啊!但是,也只是字面上的背诵,根本就是像上学时背书考试一样. ...

  2. 配置Windows Server 2008环境

    上一章已经把Windows Server2008操作系统安装完毕,接下来配置一下Windows Server环境.配置网络和共享中心.配置桌面环境.配置用户IE设置.安装Telnet远程工具.配置文件 ...

  3. set集合的常用方法

    set集合是一种无序不重复的集合   add  (self, *args, **kwargs)                                                      ...

  4. Yarn上常驻Spark-Streaming程序调优

    对于长时间运行的Spark Streaming作业,一旦提交到YARN群集便需要永久运行,直到有意停止.任何中断都会引起严重的处理延迟,并可能导致数据丢失或重复.YARN和Apache Spark都不 ...

  5. java高并发系列 - 第31天:获取线程执行结果,这6种方法你都知道?

    这是java高并发系列第31篇. 环境:jdk1.8. java高并发系列已经学了不少东西了,本篇文章,我们用前面学的知识来实现一个需求: 在一个线程中需要获取其他线程的执行结果,能想到几种方式?各有 ...

  6. 开发人员需要掌握的日常Linux命令集

    本文整理了开发人员日常用到的linux相关命令,供参考. 文件相关 cd # 进入某个目录,不接参数进入当前用户目录(等同于cd ~)如/home/devuser,可接绝对路径或相对路径(../..表 ...

  7. 如何运用PHP+REDIS解决负载均衡后的session共享问题

    一.为什么要使用Session共享? 稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站,用户系统是统一的,即一套用户名.密码在整个网站的 ...

  8. awrcrt更新到2.1(重大更新)

    awrcrt更新到了2.1 awrcrt迎来了最近一年的最大一次更新,从2.03直接跳跃了2.1版本.本次更新,给awrcrt带了全面的改变. 最主要的更新内容是什么呢?请看 更新了图表javascr ...

  9. Github资源下载

    自己收集的一些日常使用软件.编程书籍以及自己动手实践的程序,欢迎下载. 收集维护不易,喜欢请Star或Fork支持呀,(^-^)V. 所有资源均自己制作或收集自网络,如有侵权请联系删除. 友情链接 G ...

  10. 转载java 8 为什么引入 lambda

    转载:https://www.cnblogs.com/keeya/p/11404631.html 在Java8出现之前,如果你想传递一段代码到另一个方法里是很不方便的.你几乎不可能将代码块到处传递,因 ...