引用类型是构建C#应用程序的主要对象类型数据。引用类型的变量又称为对象,可存储对实际的引用。C#支持两种预定义的引用类型,即object和string,
设 置 值 描 述
object object类型在.NET Framework中是Object的别名。在C#的统一类型系统中,所有类型(预定义类型、用户定义类型、引用类型和值类型)都是直接或间接从Object继承的
string string类型表示零或更多Unicode字符组成的序列
在应用程序执行的过程中,预先定义的对象类型以new创建对象实例,并且存储在堆栈中。堆栈是一种由系统弹性配置的内存空间,没有特定大小及存活时间,因此可以被弹性地运用于对象的访问。
引用类型具有如下特征。
必须在托管堆中为引用类型变量分配内存。
必须使用new关键字来创建引用类型变量。
在托管堆中分配的每个对象都有与之相关联的附加成员,这些成员必须被初始化。
引用类型变量是由垃圾回收机制来管理的。
多个引用类型变量可以引用同一对象,这种情形下,对一个变量的操作会影响另一个变量所引用的同一对象。
引用类型被赋值前的值都是null。
【例3.5】创建一个控制台应用程序,在其中创建一个类C,在此类中建立一个字段Value,并初始化为0,然后在程序的其他位置通过new创建对此类的引用类型变量,最后输出,代码如下。(实例位置:光盘\mr\example\第3章\3.5)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test03
{
class Program
{
class C //创建一个类C
{
public int Value = 0; //声明一个公共int类型的变量Value
}
static void Main(string[] args)
{
int mr = 0; //声明一个int类型的变量mr,并初始化为0
int kj = mr; //声明一个int类型的变量kj,并将v1赋值给v2
kj = 2011; //重新将变量kj赋值为2011
C MR = new C(); //使用new关键字创建引用对象
C KJ = MR; //使MR等于KJ
KJ.Value = 112; //设置变量KJ的Value值
Console.WriteLine("Values:mr={0},kj={1}", mr, kj); //输出变量mr和kj
Console.WriteLine("Refs:MR={0},KJ={1}", MR.Value, KJ.Value);//输出引用类型对象的Value值
Console.ReadLine();
}
}
}
程序的运行结果如图3.3所示。