C#基础 [03] 类型和成员
一、什么是类型?
1.什么是类型
类型是一种数据结构的模板,它说明了由模板构造的对象的特征。类型定义了存储数据需要的内存空间的大小、对数据的访问方式、数据的存储位置(栈/堆)以及组成该类型的成员。类型包括C#语言提供的预定义类型和用户自定义的类型。
2.类型的元素
类型由名称、用于保存数据成员的数据结构及一些行为和约束条件。下图表示int类型的组成元素。
二、预定义类型
如上图所示,C#提供了16中预定义类型,包括13重简单类型和3种非简单类型。关于预定义类型的几点说明:
1.所有预定义类型的名称全部由小写字母组成。
2.所有预定义类型都直接映射到底层的.Net类型,C#的类型名称其实就是.Net类型的别名。比如 int类型是System.Int32的别名。在语法上来讲,我们在程序中可以直接使用.Net类型,但是实际当中更好的实践是使用C#类型名。
3.object类型是系统中所有其他类型的基类。
三、用户定义类型
C#包括6种用户自定义类型:类(class)、结构(struct)、枚举(enum)、数组(array)、接口(interface)和委托(delegate)。
1.类型声明信息
用户定义类型通过类型声明创建,类型声明包括:
1).类型的种类(关键字),比如class。
2).定义类型的名称,比如MyClass。
3).成员的声明(array和delegate除外,因为它们没有命名成员)。
2.用户定义类型和预定义类型的比较
使用预定义类型只需要实例化类型的对象即可,它是一个单步过程;而用户自定义类型需要先声明,后实例化,所以它是一个两步的过程。
四、值类型和引用类型
1.值类型
值类型只需要一段单独的内存空间,用于存储实际的数据。
2.引用类型
引用类型需要两段内存:第一段用于存储实际的数据,它总是位于内存堆当中;第二段是一个引用,指向数据在堆中的地址。
3.值类型和引用类型的比较
五、类型的总结
六、实例化类型
从某个类型创建实际对象,称为实例化该类型。通过实例化类型而创建的对象称为类型的对象或类型的实例。
实例化类型的示例(假设我已经定义一个类型“DaysTemp")。
1 // 创建类型的实例(类类型的变量),值为null 2 DaysTemp d1; 3 // 为数据分配内存 4 d1 = new DaysTemp(); 5 6 // 创建实例并且分配内存 7 // 使用了对象创建表达式(结合步骤) 8 // 使用了简单写法(类型推断) 【推荐】 9 var d2 = new DaysTemp();
七、成员
1.什么是成员?
包含在类型中的数据项个体就称为成员。成员具有成员名。一个类型中可以包含许多不同类型的成员,比如类类型中包含字段、属性、方法和事件等。
2.成员的类别
成员分为两种:
1).数据成员:保存了与所在类型的对象或类型本身相关的数据。比如class的字段。
2).函数成员:函数成员执行代码,它定义了类型的行为。比如lclass的方法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述