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

1.常量:

声明的常量的语法:
const 变量类型 变量名=值;
最大的特点就是,声明了常量后,就不能再被重新赋值。

 

2.枚举

语法:
[public] enum 枚举名
{
值1,
值2,
值3,
........
}
public:访问修饰符。公开的公共的,哪都可以访问。
enum:关键字,声明枚举的关键字
枚举名:要符合Pascal命名规范

enum枚举在main()函数中不能使用,所以将枚举声明到命名空间的下面,类的外面,表示这个命名空间下,所有的类都可以使用这个枚举。

枚举就是一个变量类型 ,int--double string decimal.
只是枚举声明、赋值、使用的方式跟那些普通的变量类型不一样。

枚举需要自己写,内部自己编辑。

 1 using System.Collections.Generic;
 2 using System.Linq;
 3 using System.Text;
 4 using System.Threading.Tasks;
 5 
 6 namespace 第六天_流程语句
 7 {
 8     public enum Moon
 9     {
10         阴,
11         晴,
12         圆,
13 14     } 
15     class Program
16     {
17         static void Main(string[] args)
18         {
19             Moon _moon = Moon.晴;
20             Console.WriteLine(_moon);
21             Console.ReadKey();
22                 
23         }
24     }
25 }

我们可以将一个枚举类型的变量跟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);

如果转换的字符串是数字,则就算枚举中没有,也会不会抛异常。
如果转换的字符串是文本,如果枚举中没有,则会抛出异常。

 

 1 using System.Collections.Generic;
 2 using System.Linq;
 3 using System.Text;
 4 using System.Threading.Tasks;
 5 
 6 namespace _Enum
 7 {
 8     class Program
 9     {
10        
11         enum QQState
12         {
13             OnLine=1,
14             OffLine,
15             Leave,
16             Busy,
17             QMe
18         }
19         
20         static void Main(string[] args)
21         {
22             bool b = true;
23             while (b)
24             {
25                 Console.WriteLine("请输入您要选择的登陆状态:1--OnLine,2--OffLine,3--Leave,4--Busy,5--QMe");
26                 string _input = Console.ReadLine();
27                 switch (_input)
28                 {
29                     case "1":
30                         QQState s1 = (QQState)Enum.Parse(typeof(QQState), _input);
31                         Console.WriteLine("您现在的登陆状态是{0}", s1);
32                         break;
33                     case "2":
34                         QQState s2 = (QQState)Enum.Parse(typeof(QQState), _input);
35                         Console.WriteLine("您现在的登陆状态是{0}", s2);
36                         break;
37                     case "3":
38                         QQState s3 = (QQState)Enum.Parse(typeof(QQState), _input);
39                         Console.WriteLine("您现在的登陆状态是{0}", s3);
40                         break;
41                     case "4":
42                         QQState s4 = (QQState)Enum.Parse(typeof(QQState), _input);
43                         Console.WriteLine("您现在的登陆状态是{0}", s4);
44                         break;
45                     case "5":
46                         QQState s5 = (QQState)Enum.Parse(typeof(QQState), _input); //string转换成Enum类型
47                         Console.WriteLine("您现在的登陆状态是{0}", s5);
48                         break;
49                 }
50             }    
52             Console.ReadKey();
54         }
55     }
56 }

 结构

可以一次性生成多个不同类型的变量;

[public] struct 结构名

{

     成员;//变量. 》》字段       变量只能存储一个值,字段可以存储多个值;   字段要求必须在前面加个下滑线。

}

 1 using System.Collections.Generic;
 2 using System.Linq;
 3 using System.Text;
 4 using System.Threading.Tasks;
 5 
 6 namespace 结构
 7 {
 8     public struct Person                         //结构和枚举本质是类型,需要单独定义一下;
 9     {
10        public string _name;
11        public int _age;
12        public char _gender;
13     }
14     class Program
15     {
16         static void Main(string[] args)
17         {
18             Person liangPerson;
19             liangPerson._name = "liang";
20             liangPerson._gender = '';
21             liangPerson._age = 25;
22         }
23     }
24 }
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace 结构
 8 {
 9     public struct Person                         //结构和枚举本质是类型,需要单独定义一下;
10     {
11        public string _name;
12        public int _age;
13        public Gender _gender;               
14     }
15     public enum Gender
16     {
17         男,
18 19     }
20     class Program
21     {
22         static void Main(string[] args)
23         {
24             Person liangPerson;
25             liangPerson._name = "梁俊可";
26             liangPerson._gender = Gender.男;//liangPerson._gender = '男';
27             liangPerson._age = 27;
28             Console.WriteLine("我叫{0},我的性别是{1},我今年{2}岁了",liangPerson._name,liangPerson._gender,liangPerson._age);
29             Console.ReadKey();
30         }
31     }
32 }

 

posted @ 2017-07-21 13:50  MR_L先生  阅读(200)  评论(0编辑  收藏  举报