C#编程篇 第02部分 C#复杂数据结构

本文详细探讨了C#中的复杂数据结构,包括枚举、一维和二维数组、交错数组、值类型与引用类型的区别,特别是对字符串的深入解析,如字符串内插、分隔、连接和比较,以及结构体的使用。此外,还介绍了函数(方法)的类型和应用。
摘要由CSDN通过智能技术生成

第02部分 C#复杂数据结构


1> 复杂数据类型

  • 数据类型的本质时固定的内存大小区域的别名,其作用时编译器预算对象(变量)的内存大小,从而为其分配。

  • 类型特点:

    • 枚举:整型常量的集合,可以自定义常量名。
    • 数组:任意变量类型顺序存储的数据。
    • 结构体:任意变量的数据集合,可以自定义。
  • 一般是多个数据(变量)集合在一起构成的数据,也存在自定义类型集合。


2> 枚举

  • 被命名的整型常量的集合,一般用来表示状态,类型等。

  • 枚举可以声明在命名空间,类,结构体中。

Enum E_Example
{
   
    Monday,//初始默认0开始
    TuesDay=2//显式关联
}
  • 枚举的声明:
  E_Example e = 0;//或者new E_Example,采用默认值0
              = (E_Example)n;//n >= 0
              = E_Example.枚举项;
  • 枚举可以与string和int之间转换:
  int num = (int)E_Example.枚举项;// var e = (E_Example)num; 
  string str = E_Example.枚举项.ToString();
  var e = (E_Example)Enum.Parse(typeof(E_Example),str);
  • 枚举的作用:在游戏开发中,对象很多时候会有许多状态,例如动作状态,用一个变量或标识符来表示当前玩家处于哪种状态。枚举可以帮助我们清晰的分清楚状态的含义。

3> 一维数组

  • 数组是存储一组相同数据类型的集合,分为一维,多维,交错数组。一般讲数组指的是一维数组,从抽象Array类派生。

  • 依靠索引值顺序排序的存储容器,是object,是引用类型。

  • 数组的声明:

   //1.变量类型[] 数组名;//只声明
   //2.变量类型[] 数组名 = new 变量类型[Length];
   //3.int[] arr=new int[Length]{1,2,3,4...};
   //4.int[] arr2=new int[]{1,2,3,4};
   //5.int[] arr3={1,2,3,4};
  //类型要保持一致,或者可以隐式转换
  • 一维数组是静态数组,长度不可变,其索引从0开始,各常见类型默认值不同,数组元素的默认值为C#内置各类型默认值。
  • 数组的使用:
    • 数组的长度:arr.Length;
    • 通过索引获得数组中的元素,索引最大值为 MaxIndex = Length -1;
    • 索引不能越界。通过Array.IndexOf(arr,element);当不存在时返回 -1;

4> 二维数组

  • 从Array基类派生,一维数组的实质是[0,n]表示0行n列;

arr[a,b] 表示 a 行 b 列的二维数组;

  • 二维数组的长度为:

    • a = array.GetLength(0);
    • b = array.GetLength(1);
  • 二维数组的元素数目:Arr.Count = a*b ;


5> 交错数组

  • 表示为数组的数组:Array[][] ,实质上是一维数组作为另一个一维数组的元素。

  • arr[a][b]表示第a索引数组的第b索引元素。

  • 交错数组的默认值为null;


6> 隐式类型的数组

  • 通常用于查询表达式,匿名类型,对象和集合初始值设定项。
    var arr = new[] {
   new{
   N="123",M=new[]{
   1,2,3}
                      new{
   N="345",M=new[]{
   3,4,5}}};
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值