zoukankan      html  css  js  c++  java
  • .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 }
  • 相关阅读:
    工科物理实验()中国大学MOOC答案(已更新)
    类似jar文件使用java无法打开问题
    python9、10章
    nmap的理解与利用(初级)
    常见端口
    配置优化
    删除表操作
    万能的map
    测试
    Mapper.xml
  • 原文地址:https://www.cnblogs.com/NBOWeb/p/7217282.html
Copyright © 2011-2022 走看看