3.1.2 引用类型

来源:互联网 发布:stm32用ucos还是linux 编辑:程序博客网 时间:2020/12/04 04:29

引用类型是构建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所示。


 



0 0