浅议C#数据类型
C#中有两种数据类型,值型和引用型。
一、值型
值型又可以分为整数、浮点数、字符、布尔型、结构和枚举型。
(1)整数
数据类型 |
说明 |
取值范围 |
System程序集中的结构 |
sbyte |
有符号8位整数 |
-128-127 |
SByte |
byte |
无符号8位整数 |
0-255 |
Byte |
short |
有符号16位整数 |
-32768-32767 |
Int16 |
ushort |
无符号16位整数 |
0-65535 |
UInt16 |
Int |
有符号32位整数 |
-2147489648-2147483647 |
Int32 |
uint |
无符号32位整数 |
0-42994967295 |
UInt32 |
long |
有符号64位整数 |
-263-263 |
Int64 |
ulong |
无符号64位整数 |
0-264 |
UInt64 |
(2)浮点数
数据类型 |
说明 |
取值范围 |
System程序集中的结构 |
float |
32位单精度实数 |
1.5*10-45-3.4*1038 |
Single |
double |
64位双精度实数 |
5.0*10-324-1.7*10308 |
Double |
decimal |
128位十进制实数 |
1.0*10-28-7.9*1028 |
Decimal |
(3)字符
数据类型 |
说明 |
取值范围 |
System程序集中的结构 |
char |
16位Unicode字符 |
U+0000-U+ffff |
Char |
(4)布尔型
数据类型 |
说明 |
取值范围 |
System程序集中的结构 |
bool |
32位布尔型 |
true/false |
Boolean |
(5)结构
将一系列信息组织成单一实体。
{
string name;
int age;
string sex;
}
(6)枚举
用于表示一个逻辑相关联的项和组合。
{
Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
}
二、引用型
引用类型包括类(class)、接口(interface)、数组(array)和委托(delegate)
(1)类(class)
类是一组具有相同数据结构和相同操作的对象集合。创建类的实例必须使用关键字new来进行声明。
(重点)类和结构之间的根本区别在于:结构是值类型,而类是引用类型。对于值类型,每个变量直接包含自身的所有数据,每创建一个变量,就在内存中开辟一块区域;而对于引用类型,每个变量只存储对目标存储数据的引用,每创建一个变量,就增加一个指向目标数据的指针。
(2)接口(struct)
应用程序之间要相互调用,就必须事先达成一个协议,被调用的一方在协议中对自己所能提供的服务进行描述。在C#中,这个协议就是接口。接口定义中对方法的声明,既不包括访问限制修饰符,也不包括方法的执行代码。
(注意)如果某个类继承了一个接口,那么它就要实现该接口所定义的服务。也就是实现接口中的方法。
(3)委托(delegate)
委托用语封装某个方法的调用过程。
委托的使用过程分为3步:
1.定义 delegate void HelloDelegate();
2.实例化 HelloDelegate hd = new HelloDelegate(p1.Say); //p1.Say调用的方法
3.调用 hd();
(4)数组(array)
数组主要用于同一数据类型的数据进行批量处理。在C#中,数组需要初始化之后才能使用。
如:int[] arr = new int[3]{1,2,3};