C# 入门教程(C#语法- 2.数据类型)
数据类型是编程语言中用于存储不同种类数据的分类。
下面是每种数据类型的简介以及示例代码:
整数类型(int、long、short、byte):
- 应用场景:这些整数类型用于表示整数值。
类型 | 取值范围 | 常见应用场景 |
---|---|---|
int | -2,147,483,648 到 2,147,483,647 | int 是最常用的整数类型,适合大多数常规整数计算,比如计数、索引、循环等。它通常用于表示年龄、数量、计数器等。 |
long | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 当需要处理更大范围的整数时,例如处理时间戳、表示文件大小或内存使用量等大量数据时,使用 long 类型可以确保数值不会溢出。 |
short | -32,768 到 32,767 | short 类型通常用于需要节省内存空间的情况,或者在特定硬件或网络协议中要求使用 16 位整数进行通信或存储。 |
byte | 0 到 255 | byte 类型通常用于表示字节数据,比如图像数据、文件字节等。它也可用于表示位标志和布尔值。 |
选择合适的整数类型取决于所处理数据的范围和内存要求。若不确定具体使用哪个类型,一般来说,可以首先选择 int
类型作为默认整数类型,并在需要更大范围时转而使用 long
类型。对于需要节省内存或者明确知道数值范围的情况下,可以考虑使用 short
或 byte
类型。
示例代码:
浮点数类型(float、double、decimal):
- 应用场景:这些类型用于表示带有小数部分的数字。 float 和 double 适用于大多数浮点数计算,其中 double 提供更高的精度。 decimal 用于金融和货币计算等需要更高精度的场景。
数据类型 | 存储范围 | 精度 | 应用场景 |
---|---|---|---|
float | ±1.5 × 10-45 到 ±3.4 × 1038 | 约7位有效数字 | 科学计算、图形处理、大规模数据集合、性能要求较高的计算 |
double | ±5.0 × 10-324 到 ±1.7 × 10308 | 约15位有效数字 | 一般性计算、金融计算、工程计算、科学计算 |
decimal | ±1.0 x 10-28 到 ±7.9 x 1028 | 28-29位有效数字 | 货币计算、金融计算、税务计算、精确计数 |
示例代码:
字符类型(char):
- 应用场景:char 类型用于表示单个字符。它经常用于处理文本、字符串操作和字符级别的操作。
示例代码:
字符串类型(string):
- 应用场景:string 类型用于表示一系列字符,通常用于处理和操作文本数据。
示例代码:
布尔类型(bool):
- 应用场景:bool 类型用于表示逻辑上的真或假值。它通常用于条件判断和控制流程。
示例代码:
数组类型(array):
- 应用场景:数组是一种用于存储多个相同类型元素的数据结构。它广泛应用于存储和处理集合数据。
示例代码:
枚举类型(enum):
- 应用场景:枚举是一种用户定义的类型,用于定义一组命名的常量值。它们可以在代码中提供更好的可读性和可维护性。
示例代码:
时间日期类型(DateTime):
- 应用场景:DateTime 类型用于表示日期和时间。它广泛用于处理日期和时间相关的操作,例如计算时间间隔、格式化日期等。
示例代码:
集合类型(List、Dictionary、HashSet):
- 应用场景:集合类型用于存储和操作多个元素的数据结构。
集合类型 | 特点 | 用途 |
---|---|---|
List |
有序、可重复的集合 | 存储任意类型的元素,按索引访问元素,动态添加、删除或修改元素。 |
Dictionary<TKey, TValue> | 键值对的集合 | 存储具有唯一键的元素,通过键快速查找和访问元素。 |
HashSet |
无序、唯一元素的集合 | 高效地检查元素是否存在,执行集合间的交集、并集、差集等操作。 |
简要介绍及区别总结:
List<T>
:List<T>
是一个有序的、可重复的集合,用于存储任意类型的元素。可以通过索引访问列表中的元素,并且可以动态地添加、删除或修改列表中的元素。例如:
Dictionary<TKey, TValue>
:Dictionary<TKey, TValue>
是一个键值对的集合,用于存储具有唯一键的元素。每个元素都由一个键和一个与之关联的值组成。可以通过键来访问、添加、修改或删除字典中的元素。例如:
HashSet<T>
:HashSet<T>
是一个无序的、唯一元素的集合。它不允许重复的元素,并且可以高效地检查元素是否存在。可以向集合中添加、删除元素,以及执行集合间的交集、并集、差集等操作。例如:
Array和List都可应用于存储和处理集合数据,它俩的区别如下:
区别 | Array(数组) | List(列表) |
---|---|---|
大小 | 固定大小 | 可变大小 |
内存分配方式 | 分配连续内存块 | 动态数组分配和释放内存 |
元素访问和操作 | 索引直接访问和修改元素 | 提供丰富的方法进行操作 |
类型限制 | 可包含任意类型的元素 | 通常用于存储引用类型元素 |
API支持 | 提供基本方法和属性 | 提供更多丰富的方法和功能 |
这个表格可以帮助你更清楚地理解Array和List之间的差异。
对象类型(class、struct):
- 应用场景:对象类型用于创建自定义的数据类型和数据结构。class 和 struct 分别用于定义引用类型和值类型的对象。它们适用于创建具有属性和方法的自定义数据类型。
class和struct区别 示例代码:
在上述示例中,我们定义了一个表示人员的class(Person)和一个表示二维坐标点的struct(Point)。我们创建了一个Person对象(person)和一个Point对象(point),并分别展示了它们的特点。
通过这个完整可运行的示例代码,可以清晰地看到class和struct的区别:
- class是引用类型,Person对象存储在堆上,而struct是值类型,Point对象存储在栈上。
- 传递class对象时,实际上传递的是对堆上对象的引用;传递struct对象时,会将整个值复制到新的变量中。
- class有自动生成的无参构造函数,而struct没有默认无参构造函数。
- class的对象可以为null,而struct的对象不可为null。
- class支持单继承和多层继承,而struct只能通过接口实现来达到类似的效果。
小结
这么多数据类型以及用法,不需要大家死记硬背,知道有它的存在就好,就像读书一样,很多时候我们不是读了立刻用起来,而是在将来的某一天,它会神助。
大家有任何问题都可以加关注后在评论区留言,或者加客服一对一咨询。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明