变量和常量
变量类型
1.值类型
值类型变量直接存储其数据值,主要包含整数类型、浮点类型以及布尔类型等。值类型变量在堆栈中进行分配,因此效率很高,使用值类型的主要目的是为了提高性能。
值类型有以下特性:
a).值类型变量存储在堆栈中。
b).访问值类型变量时,一般都是直接访问其实例。
c).每个值类型变量都有自己的数据副本,因此对一个值类型变量的操作不会影响其他变量。
d).复制值类型变量时,复制的是变量的值,而不是变量的地址。
e).值类型变量不能为null,必须具有一个确定的值。
1).整数类型
整数类型代表一种没有小数点的整数数值。如下:
sbyte(8位有符号整数)
short(16位有符号整数)
int(32位有符号整数)
long(64位有符号整数)
byte(8位无符号整数)
ushort(16位无符号整数)
uint(32位无符号整数)
ulong(64位无符号整数)
2).浮点类型
浮点类型变量主要用于处理含有小数的数值数据。如下:
float(精确到7位数)
double(精确到15-16位数)
3).布尔类型
2.引用类型
引用类型是构建C#应用程序的主要对象类型数据。在应用程序执行的过程中,预先定义的对象类型以new创建对象实例,并且存储在堆栈中。堆栈是一种由系统弹性配置的内存空间,没有特定大小及存活时间,因此可以被弹性地运用于对象的访问。
引用类型具有如下特征:
a).必须在托管堆中为引用类型变量分配内存。
b).必须使用new关键字来创建引用类型变量。
c).在托管堆中分配的每个对象都有与之相关联的附加成员,这些成员必须被初始化。
d).引用类型变量是由垃圾回收机制来管理的。
e).多个引用类型变量可以引用同一个对象这种情形下,对一个变量的操作会影响另一个变量所引用的同一个对象。
f).引用类型被赋值前的值都是null。
注:所有被称为“类”的都是引用类型,主要包括类、接口、数组和委托。
3.值类型与引用类型的区别
1).从概念上看,值类型直接存储其值,而引用类型存储对其值的引用。
2).从内存空间上看,值类型是在栈中操作,而引用类型则在堆中分配存储单元。
4.枚举类型
enum 枚举名
{
list1=value1,
list2=value2,
list3=value3,
…
}
注:定义枚举类型时,如果不对其进行赋值,默认情况下,第一个枚举数的值为0,后面每个枚举数的值依次递增1。
常量
常量就是其值固定不变的量,而且常量的值在编译时就已经确定了。常量的类型只能为下列类型之一:sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double、decimal、bool、string等。使用关键字const来创建常量,并且在创建常量时必须设置它的初始值。常量就相当于每个公民的身份证号,一旦设置就不允许修改。
const double PI = 3.1415926
《C#从入门到精通》读后总结