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# 语言类型(五)---其他

相关推荐
死磕音视频2 小时前
让小模型做选择题:限定候选项并读取 logits 概率的入门实践(附 Python 代码)
开发语言·python·大模型·文本分类·transformers
顽疲5 小时前
Java vue 养老系统源码详解:月账单 care_month_bill 与 Quartz 扣费 Job 实践
java·开发语言·vue.js·vue养老·springboot养老·java养老
Wang's Blog5 小时前
Java 项目实战: 交友项目 - 安装开发工具与环境准备
java·开发语言·交友
曹牧5 小时前
C#:输入的字符串格式不正确
c#
程序喵大人7 小时前
【C++入门】编译链接模型 - 07 链接器怎样把符号对上号
开发语言·c++·编译器·编译链接·链接器
微三云 - 廖会灵 (私域系统开发)7 小时前
供应链系统实战:多渠道订单聚合与分布式库存一致性方案总结
开发语言·分布式·php
学逆向的7 小时前
C 数据溢出与精度丢失
c语言·开发语言·网络安全
霸道流氓气质8 小时前
AgentFlow 入门与实战:Task-Based 并发、EWMA 动态调度与四道门禁的 Java 生产级编排
java·开发语言
释厄6238 小时前
错误无误公理——错误正确本同源都迭代定律——逆转有价值
android·开发语言·kotlin
2601_962885729 小时前
如何用 Python计算 CR能量指标(中间意愿指标)?
开发语言·python