C# 语言类型(三)—数组/枚举类型/结构体

总目录
C# 语法总目录
参考链接:
C#语法系列:C# 语言类型(一)---预定义类型值之数值类型
C#语法系列:C# 语言类型(二)---预定义类型之字符串及字符类型简述
C#语法系列:C# 语言类型(三)---数组/枚举类型/结构体
C#语法系列:C# 语言类型(四)---传递参数及其修饰符
C#语法系列:C# 语言类型(五)---其他

C# 语言类型 三---数组/枚举类型/结构体

      • 一、数组
        • [1. 数组创建](#1. 数组创建)
        • [2. 多维数组](#2. 多维数组)
          • [2.1 矩形数组](#2.1 矩形数组)
          • [2.2 锯齿形数组](#2.2 锯齿形数组)
      • 二、枚举类型和结构体
        • [1. 枚举类型使用](#1. 枚举类型使用)
        • [2. 结构体的使用](#2. 结构体的使用)

一、数组

1. 数组创建
csharp 复制代码
//第一种 数组的初始化方式
//int[] scores = {23,43,432,42,34,234,234,2,34} ;//使用这种方式赋值的时候,一定要注意 在数组声明的时候赋值

//第二种数组创建的方式
//int[] scores = new int[10];
//int[] scores;
//scores = new int[10];

//int[] scores = new int[10]{3,43,43,242,342,4,234,34,234,5};
//Console.WriteLine(scores[10]);//当我们访问一个索引不存在的值的时候,会出现异常exception

//char[] charArray = new char[2]{'a','b'};
//Console.WriteLine(charArray[1]);

string[] names = new string[]{"taikr","baidu","google","apple"};
Console.WriteLine(names[0]);
Console.ReadKey();
2. 多维数组

多维数组分为锯齿形数组矩形数组

2.1 矩形数组
csharp 复制代码
//矩形数组
//1.
int[,] retrict = new int[3, 3]
{
    {1,2,3},
    {2,3,4},
    {2,3,4}
};

//2.
int[,] rer =
{
    {1,2,6},
    {2,3,4},
    {2,3,4}
};
2.2 锯齿形数组
csharp 复制代码
//锯齿形数组
//1.
int[][] res = new int[3][];
res[0] = new int[] { 4, 5 };
res[1] = new int[] { 4, 5 };
res[2] = new int[] { 4, 5 };

//2.
int[][] tes = new int[][]
{
    new int[]{4,5},
    new int[]{1},
    new int[]{7,8,9}
};

//3.
int[][] ret =
{
    new int[] { 4, 5 },
    new int[] { 4, 5 },
};

二、枚举类型和结构体

1. 枚举类型使用
csharp 复制代码
namespace _037_枚举类型 {
    //枚举类型的定义
    enum GameState:byte//修改该枚举类型的存储类型,默认为int
    {
        Pause = 100, // 默认代表的是整数0
        Failed = 101,// 默认代表的是整数1
        Success=102,// 默认代表的是整数2
        Start=200// 默认代表的是整数3
    }
    class Program
    {
        static void Main(string[] args) {
            利用定义好的枚举类型 去声明变量
            //GameState state = GameState.Start;
            //if (state == GameState.Start)//枚举类型比较
            //{
            //    Console.WriteLine("当前处于游戏开始状态");
            //}
            //Console.WriteLine(state);

            //int state =3;
            //if (state == 3)
            //{
            //    Console.WriteLine("当前处于游戏开始界面");
            //}
            GameState state = GameState.Start;
            int num = (int)state;
            Console.WriteLine(num);
            Console.ReadKey();
        }
    }
}
2. 结构体的使用
csharp 复制代码
namespace _038_结构体 {
    //我们可以把结构体当成,几个类型组成了一个新的类型
    //比如下面的这个就是使用了3个float类型的变量,来表示一个坐标类型
    struct Position
    {
        public float x;
        public float y;
        public float z;
    }

    enum Direction
    {
        West,
        North,
        East,
        South
    }

    struct Path
    {
        public float distance;
        public Direction dir;
    }
    class Program {
        static void Main(string[] args)
        {
            //通过三个float类型的变量来表示一个敌人的坐标
            //float enemy1X = 34;
            //float enemy1Y = 1;
            //float enemy1Z = 34;


            //float enemy2X = 34;
            //float enemy2Y = 1;
            //float enemy2Z = 34;

            //当使用结构体声明变量的时候,相当于使用结构体中所有的变量去声明
            //Position enemy1Position;
            //enemy1Position.x = 34;//可以通过.加上属性名来访问结构体中指定的变量
            使用结构体让程序变得更清晰
            //Position enemy2Position;

            Path path1;
            path1.dir = Direction.East;
            path1.distance = 1000;
        }
    }
}

总目录
C# 语法总目录
参考链接:
C#语法系列:C# 语言类型(一)---预定义类型值之数值类型
C#语法系列:C# 语言类型(二)---预定义类型之字符串及字符类型简述
C#语法系列:C# 语言类型(三)---数组/枚举类型/结构体
C#语法系列:C# 语言类型(四)---传递参数及其修饰符
C#语法系列:C# 语言类型(五)---其他

相关推荐
2501_9333295523 分钟前
企业媒体发布与舆情管理实战:Infoseek舆情系统技术架构与落地解析
大数据·开发语言·人工智能·数据库开发
"菠萝"26 分钟前
C#知识学习-021(文字关键字)
开发语言·学习·c#
minji...26 分钟前
Linux 线程同步与互斥(二) 线程同步,条件变量,pthread_cond_init/wait/signal/broadcast
linux·运维·开发语言·jvm·数据结构·c++
zhangzeyuaaa28 分钟前
Python 中的 Map 和 Reduce 详解
开发语言·python
游乐码36 分钟前
c#HashTable
开发语言·c#
小白学大数据44 分钟前
Scrapy 分布式爬虫:大规模采集汽车之家电车评论
开发语言·分布式·爬虫·scrapy
HSunR44 分钟前
java springboot3 后端 基础框架
java·开发语言
Mr_Xuhhh1 小时前
算法刷题笔记:从滑动窗口到哈夫曼编码,我的算法进阶之路
开发语言·算法
七夜zippoe1 小时前
Java技术未来展望:GraalVM、Quarkus、Helidon等新趋势探讨
java·开发语言·python·quarkus·graaivm·helidon
枫叶落雨2221 小时前
ClassPathXmlApplicationContext
java·开发语言