C#入门系列 -- 数据类型

举报
陈言必行 发表于 2022/03/05 14:52:15 2022/03/05
【摘要】 计算机中处理的数据既可以是数值,也可以是文字。由于计算机存储数值和文字的形式不同,造成了对它们的处理方式也不相同。因此,编程时需要明确的指出所处理数据的类型。

一,概念和分类

计算机中处理的数据既可以是数值,也可以是文字。由于计算机存储数值和文字的形式不同,造成了对它们的处理方式也不相同。因此,编程时需要明确的指出所处理数据的类型。

C#语言的数据类型分为两大类:值类型引用类型

二,整数类型

C#中的整型分为有符号和无符号两大类,C#编译器使用整型数据的高阶位作为符号标志,符号标志为0表示正数,符号标志为1表示负数。

根据有无符号以及数据在内存中分配的空间大小,C#把整型分成8个类型。

类别 位数 类型标识符 范围
有符号整型 8 sbyte –128…127
有符号整型 16 short –32,768…32,767
有符号整型 32 int –2,147,483,648…2,147,483,647
有符号整型 64 long –9,223,372,036,854,775,808…9,223,372,036,854,775,807
无符号整型 8 byte 0…255
无符号整型 16 ushort 0…65,535
无符号整型 32 uint 0…4,294,967,295
无符号整型 64 ulong 0…18,446,744,073,709,551,615

三,实数类型

C#有三个实数类型,分别是浮点型float和double以及高精度小数型decimal。

float是32位的单精度小数类型,double是64位的双精度小数型,而decimal表示128 位的高精度小数型。

类别 位数 类型标识符 范围/精度
IEEE浮点型 32 float -3.4 × 10 38 到 +3.4 × 10 38,7位精度
IEEE浮点型 64 double ±5.0 × 10 -324 到 ±1.7 × 10 308,15 位或16位精度
高精度小数型 128 decimal (-7.9 x 10 28 - 7.9 x 10 28) / (10 0 - 28),28 位或29位精度

四,字符和字符串

C#提供了字符和字符串类型来描述文本信息。C#内置支持Unicode。

C#的字符类型记为char,可表示中文字符、英文字符或者数字等。

char类型数据在内存中占2个字节,最多可描述216即65536个符号。

C#的字符串类型记为string,它用以描述包含零个、一个或多个Unicode标准字符的字符序列。

五,布尔型

C#采用布尔类型描述实际应用中“真”和“假”、“成立”和“不成立”或“存在”和“不存在”的情况。

布尔类型的类型标识符为bool,可能值为 true 和 false,其中true用以表示“真”、“成立”或“存在”的情况,而false则表示“假”、“不成立”或“不存在”。

bool类型数据在内存中占1个字节,并且不能和整数1与0转换。

六,引用类型

引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。

换句话说,它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。内置的 引用类型有:object、dynamic 和 string。

对象(Object)类型
对象(Object)类型 是 C# 通用类型系统(Common Type System - CTS)中所有数据类型的终极基类。Object 是 System.Object 类的别名。所以对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。

当一个值类型转换为对象类型时,则被称为 装箱;另一方面,当一个对象类型转换为值类型时,则被称为 拆箱。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。