在上一小节中,笔者已经介绍了预定义的值类型。实际面试中,关于预定义的引用类型问题很可能紧接着上一个问题出现。本小节将针对这个问题进行介绍。
【出现频率】★★★★★
【关键考点】
引用类型(reference type)
String类型
Object类型
【考题分析】
引用类型(reference type),指由类型的实际值引用(类似于指针)表示的数据类型。如果分配给某个变量一个引用类型,则该变量将引用(或“指向”)原始值,并且不创建任何副本。引用类型包括类、接口、委托和装箱值类型。
预定义的引用类型相对预定义的值类型少很多,它只有Object类型和String类型。如表3.2所示:
表3.2 C#中的引用类型
类型 | 名称 | 简要说明 |
根类型 | System.Object | 根类型,CTS中的其他类型都是从它派生而来的(包括值类型) |
字符串型 | System.String | Unicode字符串 |
注意:CTS通用类型系统(Common Type System) ,定义了可以在中间语言中使用的预定义数据类型。所有面向.NET Framework的语言都可以生产最终基于这些类型的编译代码。CTS的层次结构反应了中间语言单一继承的面向对象的方法。CTS不但定义了基本数据类型,还定义了一个内容丰富的类型层次结构,在这些位置上,代码允许定义自己的类型。
【答案】
C#中预定义的引用类型共2个,分别是Object类型和String类型,这也是C#中使用频率最高的两个类型。