变量和常量

变量类型

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#从入门到精通》读后总结

原文地址:https://www.cnblogs.com/hmliang/p/5232753.html