一、变量的基本概念:
变量本事是用来存储特定类型的数据,可以随时改变变量中所存储的数据值。变量具有名称、类型和值。变量的值是可以发生变化的,使用变量之前必须先声明变量,即指定变量的类型和名称。
1、变量类型:
变量类型根据其定义分为:一种是值类型,另一种是引用类型。
二、变量类型;
1、值类型特征:
① 值类型变量都存储在堆栈中;
② 访问值类型变量时,一般都是直接访问其实例;
③ 每个值类型变量都有自己的数据副本,因此对一个值类型变量操作不会影响其他变量;
④ 复制值类型变量时,复制的是变量的值,而不是变量的地址;
⑤ 值类型变量不能为NULL,必须具有一个确定的值
值类型是从System.ValueType 类继承而来的类型。
2、整数类型:整数类型代表没有小数点的整数数值
类型 |
说明 |
范围 |
Sbyte |
8位有符号整数 |
取值范围在128~127之间 |
Short |
16位有符号整数 |
取值范围在-32,768~32,767之间 |
Int |
32位有符号整数 |
取值范围在-2,147,483,648~ 2,147,483,647之间 |
Long |
64位有符号整数 |
取值范围在-9,223,372,036,854,775,808~ 9,223,372,036,854,775,807之间 |
Byte |
8位无符号整数 |
取值范围在0~255之间 |
Ushort |
16位无符号整数 |
取值范围在0~65,535之间 |
Uint |
32位无符号整数 |
取值范围在 0 ~ 4,294,967,295之间 |
Ulong |
64位无符号整数 |
取值范围在0 ~ 18,446,744,073,709,551,615之间 |
创建一个控制台应用程序,声明变量int类型的变量ls并初始化为927,一个为byte类型的变量shj并初始化为255,输出
1 statci void Main (string [] arge) 2 { 3 int ls=927;//声明一个int类型的变量ls 4 byte shj =255;//声明一个byte类型的变量shj 5 Console.WriteLine("ls={0},shj={1}"+ls,shj);//输出 6 Console.ReadLine(); 7 }
如果将byte类型的变量shj赋值266出现错误,byte值范围0~255
3、浮点类型:浮点类型变量主要用于处理含有小数的数值数据,浮点型主要包含float和double。 它们的差别在于取值范围和精度
类型 |
说明 |
范围 |
float |
精确到7位数 |
取值范围在 1.5x10^-45~ 3.4x10^38之间 |
double |
精确到15~16位数 |
取值范围在 5.0x10^-324 ~ 1.7x10^308之间 |
如果不做任何设置,包含小数点的数值都被认为double类型,如果没有指明的情况下,这个数值是double类型。如果要将数值一float类型来处理,就要强制转换使用f或F将其指定为float类型
1 double MyDou=927d;//使用d强制转换为double 2 double mudou=112D;//使用D强制转换为double
将数值数值类型强制指定为double类型,则需要使用D或d进行设置
1 double MyDou=927d;//使用d强制转换为double 2 double mudou=112D;//使用D强制转换为double
3、布尔型:布尔类型主要用来表示true/false值,一个布尔类型的变量,其值只能是true或者false,不能将其他的值指定给布尔类型变量,布尔类型变量不能与其他类型进行转换。
将927赋值给布尔类型变量x
1 Bool x=927;
这样赋值是错误的,常量值927无法转换为bool。
三、引用类型:
1、 引用类型是构建C#应用程序的主要对象类型数据,预先定义的对象类型以new创建对象实例,并存储在堆栈中。
2、引用类型特征:
① 必须在托管堆中为引用类型变量分配内存;
② 必须需new关键字来创建引用类型变量;
③ 在托管堆中分配的每个对象都有与之相关联的附加成员,这些成员必须被初始化;
④ 引用类型变量室友垃圾回收机制来管理的;
⑤ 多个引用变量可以引用同一对象,这种情况下,对一个变量的操作会影响另一个变量所引用的同一对象
⑥ 引用类型被赋值前的值都是NULL
所有被称为“类”的都是引用类型,主要包括类、接口、数组和委托。
创建一个控制台应用程序,在其中创建一个C类,在该类中建立一个字段Value,并初始化为0.然后通过其他位置通过new创建该类的引用类型变量,最后输出。
1 class Program 2 { 3 class C //创建一个C类 4 { 5 public int Value = 0;//声明一个公共int类型的变量Value 6 } 7 static void Main(string[] args) 8 { 9 int v1 = 0;//声明一个int类型的变量v1,并初始化为0 10 int v2 = 1;//声明一个int类型的变量v2,并将v1赋值个v2 11 v2 = 927;//重新将变量V2赋值为927 12 C r1 = new C();//使用new关键字创建引用对象 13 C r2 = r1;//使r1=r2 14 r2.Value = 112;//设置r2的value值 15 Console.WriteLine("Values;{0},{1}", v1, v2);//设置输出v1和v2的变量 16 Console.WriteLine("refs;{0},{1}", r1.Value, r2.Value);//输出引用类型对象的value值 17 Console.ReadLine(); 18 } 19 }