C#数组 枚举 结构

本文深入探讨了C#中的数组操作、隐式类型本地数组、枚举类型的存储类型改变、结构类型的特点及注意事项。

C#数组操作

隐式类型本地数组

Var b=new[] {1,2,3,4,5,6,7,8,9,0},必须在声明时给数组赋初值。

同隐式类型字段一样,var数组也是根据第一个数组元素的类型来确定,而不是默认为object类型,因此,必须保证每个数组元素类型都相同


C#枚举类型

默认情况下,枚举类型保存的枚举值存储类型(C#int)类型,若要改变其存储类型则可以

Enum EmpType:byte
{
Manager=10,
Grunt=1,
Contrator=100,
VicePresident=9
}

此时,枚举类型中存储的类型就是byte类型

C#结构类型

关于结构体的几点注意:

结构体是值类型,与其他值类型数据一样存放在栈空间,在C#中,所有的基本值类型都是以结构的形式存在的

2 C#中结构体本身具有一个默认无参构造函数,并且可以声明自定义构造函数,但与类的构造函数不同的是,即使用户自定义了构造函数,原有的默认无参构造函数还会存在,所以,用户只能自定义有参构造函数,否则,将会与原有默认无参构造方法产生冲突。即使,自定义了构造函数,还是可以调用默认构造函数的。

在结构体中声明字段时,不能直接对字段进行初始化赋值,只能通过方法或属性来赋值,默认情况下有默认无参构造函数会初始化各个字段为默认值,若用户自定义构造函数,就必须将每个字段通过方法或属性都进行初始化赋值。

结构体本身是隐式sealed类型,因此结构体本身不具有继承性,结构体不能继承自类,但可以继承自接口

同类一样,结构体中默认的数据是私有成员,在结构体中可以声明方法(C++有区别)


数组枚举结构体是不同的数据结构,可从定义、特性和用途等方面进行区分。 ### 定义形式 - **数组**:是相同类型元素的集合,在不同语言有不同的定义方式。例如在 C 语言中,定义一个整型数组 `int arr[5];` 表示包含 5 个整数的数组 [^2]。 - **枚举**:是一组命名整型常量,使用 `enum` 关键字声明。如在 C# 中,`enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };` 定义了一个表示星期的枚举类型 [^1]。 - **结构体**:是不同数据类型的集合,可将不同类型的数据组合成一个整体。在 C 语言中,定义一个学生结构体 `struct Stu { char name[20]; int age; };` [^2]。 ### 特性 - **数组**:数组中的元素具有相同的数据类型,元素在内存中连续存储。通过索引访问数组元素,索引从 0 开始。 - **枚举**:枚举类型是值类型,包含自己的值,不能继承或传递继承。枚举成员默认是整型常量,从 0 开始依次递增,也可显式赋值 [^1]。 - **结构体**:结构体是值类型,存储在栈中(对于 C# 等语言)。结构体中的成员可以是不同的数据类型,访问结构体成员使用成员访问运算符 `.` [^3]。 ### 用途 - **数组**:用于存储和处理一组相同类型的数据,如存储一组整数、字符等。 - **枚举**:用于定义一组相关的常量,提高代码的可读性和可维护性,如表示星期、月份、颜色等 [^1]。 - **结构体**:用于表示一个复杂的数据对象,将不同类型的数据组合在一起,如表示一个学生的信息、一个点的坐标等 [^2]。 ### 代码示例 ```c #include <stdio.h> // 结构体定义 struct Stu { char name[20]; int age; }; // 枚举定义 enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat }; int main() { // 数组定义和初始化 int arr[5] = {1, 2, 3, 4, 5}; // 结构体初始化 struct Stu s = { "张三", 20 }; // 枚举使用 enum Days today = Mon; // 访问数组元素 printf("数组元素: %d\n", arr[2]); // 访问结构体成员 printf("学生姓名: %s, 年龄: %d\n", s.name, s.age); // 访问枚举成员 printf("今天是星期: %d\n", today); return 0; } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值