C#-枚举与集合

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/TheBestAge/article/details/80714229

结构体

一种数据结构,包括数据成员和方法成员。通过结构体一次性声明多个不同类型的变量。

1.结构是值类型,它在栈中分配空间;而类是引用类型,在堆中分配空间,栈中保存的是引用

2.结构类型存储的是成员数据,位于栈中的变量保存的是指向堆中数据对象的引用

Public struct 结构名{字段、属性、方法、事件}

枚举

一种值类型,一个由指定常量集合组成的数据类型。枚举声明可以显式地声明byte、short、ushort、sbyte、int、uint、long、ulong作为对应的基础类型。

1.枚举使用关键字enum关键字声明。

2.枚举本身可以有修饰符,但枚举的成员始终是公众的,仅能使用Public和Internal

3.枚举类型中声明的第一个枚举成员的默认值为零,允许多个枚举成员有相同的值,没有显示赋值的枚举成员的值,总是前一个枚举成员的值+1.枚举值为常量,不是变量

enum student{a,b,c,d}

int=student.a

扫描二维码关注公众号,回复: 3371569 查看本文章

集合

数组

集合

容量

创建时需要指定数组变量的大小

默认初始容量为0,大小可按动态增加

访问

连续存储,可以快速地遍历元素。一次性声明多个相同类型的变量

使用整数索引可以访问集合中的元素,随意地添加、插入或移除某一范围元素,始终保持元素的连续性

存储

同一类型的数据,连续存储

可以不是一种,不加泛型时添加的类型时Object

缺点

数组长度固定,插入、移除非常麻烦,

类型不安全,容易出现类型不匹配的错误,装箱拆箱会到来性能损耗

List是接口,特性是有序且允许元素重复,ArrayList是它的实现类。

泛型

泛型时具有占位符(类型参数)的类、结构、接口和方法,这些占位符是类、接口和方法所存储或使用的一个或多个类型的占位符。泛型集合类可以将类型参数用作它所存储的对象的类型的占位符;类型参数作为其子段的类型和其方法的参数类型出现。

IList<Animal>arrayAnimal;//声明一泛型集合变量,用接口IList。IList<Animal>表示此集合变量只能接受Animal类型。

arrayAnimal=new List<Animal>();//实例化List对象

注:<T>需要指定的集合的数据或对象类型

List和ArrayLIst在功能上是一样的,不同在于,List在声明和实例化时都需要指定其内部项的数据或对象类型,可以避免类型安全问题和装箱拆箱的问题。


猜你喜欢

转载自blog.csdn.net/TheBestAge/article/details/80714229
今日推荐