C#基础语法—学习笔记

复杂数据类型

一般是多个数据(变量)集合在一起构成的数据

一般可以自己取名,可以自定义的数据(变量)

枚举:整型常量集合

数组:任意变量类型顺序存储的数据

结构体:任意变量的数据集合,可以自定义

一、枚举

1.枚举的基本概念

1.1枚举是什么

枚举是一个比较特别的存在
它是一个被命名的整形常量的集合
一般用它来表示 状态 类型 等等

1.2申明枚举和申明枚举变量

注意:申明枚举 和 申明枚举变量 是两个概念
申明枚举: 相当于是 创建一个自定义的枚举类型
申明枚举变量: 使用申明的自定义枚举类型 创建一个枚举变量

1.3申明枚举语法

	// 枚举名 以E或者E_开头 作为我们的命名规范
    //enum E_自定义枚举名
    //{
   
    //    自定义枚举项名字, //枚举中包裹的 整形常量  第一个默认值是0 下面会依次累加
    //    自定义枚举项名字1,//1
    //    自定义枚举项名字2,//2
    //}

    //enum E_自定义枚举名
    //{
   
    //    自定义枚举项名字 = 5, //第一个枚举项的默认值 变成5了 
    //    自定义枚举项名字1,// 6
    //    自定义枚举项名字2 = 100,
    //    自定义枚举项名字3,//101
    //    自定义枚举项名字4,//102
    //}

2.在哪声明枚举

1.namespace语句块中(常用)
2.class语句块中 struct语句块中
注意:枚举不能在函数语句块中声明!

enum E_MonsterType
    {
   
        Normal, //0
        Boss,   //1
    }

    enum E_PlayerType
    {
   
        MainPlayer,
        OtherPlayer,
    }

3.枚举的使用

			//声明枚举变量,在函数中声明并使用
            //自定义的枚举类型 变量名 = 默认值;(自定义的枚举类型.枚举项)
            E_PlayerType playerType = E_PlayerType.MainPlayer;

            if (playerType == E_PlayerType.MainPlayer)
            {
   
                Console.WriteLine("主玩家逻辑");
            }else if (playerType == E_PlayerType.OtherPlayer)
            {
   
                Console.WriteLine("其他玩家逻辑");
            }

            //枚举和switch是天生一对
            E_MonsterType monsterType = E_MonsterType.Boss;
            switch (monsterType)
            {
   
                case E_MonsterType.Normal:
                    Console.WriteLine("普通怪物逻辑");
                    break;
                case E_MonsterType.Boss:
                    Console.WriteLine("Boss逻辑");
                    break;
                default:
                    break;
            }

4.枚举的类型转换

4.1枚举和int互转

			//枚举转int
			int i = (int)playerType;
            Console.WriteLine(i);
            //int 转枚举
            playerType = 0;

4.2枚举和string互转

			//把枚举转成string
            string str = playerType.ToString();
            Console.WriteLine(str);

            //把string转成枚举
            //Parse后 第一个参数:要转的是哪个枚举类型  第二个参数:用于转换的对应枚举项的字符串
            //转换完毕后 是一个通用的类型  需要用括号强转成我们想要的目标枚举类型
            playerType = (E_PlayerType)Enum.Parse(typeof(E_PlayerType),"OtherPlayer");
            Console.WriteLine(playerType);

5.枚举的作用

游戏开发中 对象很多时候 会有许多状态
比如玩家有一个动作状态 需要用一个

二、数组

1.一维数组

1.1基本概念

在这里插入图片描述
数组是存储一组相同类型数据的集合
数组分为 一维、多维、交错数组
一般情况 一维数组 就简称为 数组

1.2数组的声明

			// 变量类型[] 数组名;//只是申明了一个数组 但是并没有开房
            // 变量类型 可以是我们学过的 或者 没学过的所有变量类型
            int[] arr1;

            // 变量类型[] 数组名 = new 变量类型[数组的长度];
            int[] arr2 = new int[5]; //这种方式 相当于开了5个房间 但是房间里面的int值 默认为0

            // 变量类型[] 数组名 = new 变量类型[数组的长度]{内容1,内容2,内容3,.......};
            int[] arr3 = new int[5] {
    1, 2, 3, 4, 5 };

            // 变量类型[] 数组名 = new 变量类型[]{内容1,内容2,内容3,.......};
            int[] arr4 = new int[] {
    1, 2, 3, 4, 5 }; //后面的内容就决定了 数组的长度 “房间数”

            // 变量类型[] 数组名 = {内容1,内容2,内容3,.......};
            int[] arr5 = {
    1, 2, 3, 4, 5 };//后面的内容就决定了 数组的长度 “房间数”

            bool[] arr6 = {
    true, false };

1.3数组的使用

			int[] array = {
    1, 2, 3, 4, 5 };
            //1.数组的长度
            // 数组变量名.Length
            Console.WriteLine(array.Length);

            //2.获取数组中的元素
            //数组中的下标和索引 他们是从0开始的
            //通过 索引下标去 获得数组中某一个元素的值时
            //一定注意!!!!!!!!
            //不能越界  数组的房间号 范围 是 0 ~ Length-1
            Console.WriteLine(array[0]);
            Console.WriteLine(array[2]);
            Console.WriteLine(array[4]);

            //3.修改数组中的元素
            array[0] = 99;
            Console.WriteLine(array[0]);

            //4.遍历数组 通过循环 快速获取数组中的每一个元素
            Console.WriteLine("**********************");
            for (int i = 0; i < array.Length; i++)
            {
   
                Console.WriteLine(array[i]);
            }
            Console.WriteLine("**********************");
            //5.增加数组的元素
            // 数组初始化以后 是不能够 直接添加新的元素的
            int[] array2 = new int[6];
            //搬家
            for (int i = 0; i < array.Length; i++)
            {
   
                array2[i] = array[i];
            }
            array = array2;
            for (int i = 0; i < array.Length; i++)
            {
   
                Console.WriteLine(array[i]);
            }
            array[5] = 66;
            Console.WriteLine("**********************");
            //6.删除数组的元素
            // 数组初始化以后 是不能够 直接删除元素的
            // 搬家的原理
            int[] array3 = new int[5];
            //搬家
            for (int i = 0; i < array3.Length; i++)
            {
   
                array3[i] = array[i];
            }
            array = array3;
            Console.WriteLine(array.Length);

            //7.查找数组中的元素
            // 99 2 3 4 5 
            // 要查找 3这个元素在哪个位置
            // 只有通过遍历才能确定 数组中 是否存储了一个目标元素
            int a = 3;

            for (int i = 0; i < array.Length; i++)
            {
   
                if (a == array[i])
                {
   
                    Console.WriteLine("和a相等的元素在{0}索引位置", i);
                    break;
                }
            }

1.4总结

1.概念:同一变量类型的数据集合
2.一定要掌握的知识:申明,遍历,增删查改
3.所有的变量类型都可以申明为 数组
4.她是用来批量存储游戏中的同一类型对象的 容器 比如 所有的怪物 所有玩家

2.二维数组

2.1 基本概念

二维数组是使用两个下标(索引)来确定元素的数组
两个下标可以理解成 行标 和 列标
比如矩阵
1 2 3
4 5 6
可以用二维数组 int[2,3]表示
好比 两行 三列的数据集合

2.2 二维数组的声明

			//变量类型[,] 二维数组变量名;
            
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值