详解C 详解CDEF调
创始人
2024-04-30 02:41:13
0

C#引用类型

和值类型相比,C#引用类型不存储它们所代表的实际数据,但它们存储实际数据的引用。在C#中提供以下引用类型给你使用:
◆对象类型
◆类类 型
◆接口
◆代表元
◆字符串类型
◆数组

1.对象类型

对象类型是所有类型之母——它是其它类型最根本的基类。因为它是所有对象的基类,所以可把任何类型的值赋给它。给所有的C++程序员一个警告:object并不等价于你可能正在寻找的void*.无论如何,忘掉指针总是个好主意。当一个值类型被加框(作为一个对象利用)时,对象类型就被使用了。这一章稍后会讨论到加框和消框

2.类类型

一个类类型可以包含数据成员、函数成员和嵌套类型。数据成员是常量、字段和事件。函数成员包括方法、属性、索引、操作符、构造函数和析构函数。类和结构的功能是非常相似的,但正如前面所述,结构是值类型而类是引用类型。

和C++相比,仅允许单继承。(你不能拥有派生一个新对象的多重基类。) 但是,C#中的一个类可以派生自多重接口,该接口在下一节将得到描述。

第五章 "类"专门讨论使用类编程。这一节仅打算给出C#类在哪里适合类型图的一个全貌。

3.接口

一个接口声明一个只有抽象成员的引用类型。跟C++中相似的概念为:一个结构的成员,且方法等于0.如果你不知道那些概念的任何东西,这里就是在C#中一个接口实际所做的。仅仅只存在着方法标志,但根本就没有执行代码。这就暗示了不能实例化一个接口,只能实例化一个派生自该接口的对象。

可以在一个接口中定义方法、属性和索引。所以,对比一个类,接口有什么特殊性呢?当定义一个类时,可以派生自多重接口,而你只能可以从仅有的一个类派生。

我说很多类可以实现这个接口——所以,你可以在多个地方重用代码来访问IDictionary 接口!一旦学会,任何地方都可使用。当你决定在类设计中使用接口时,学习更多关于面向对象的设计是个好主意。这本书不能教你这些概念,但你可以学习如何创建接口。
正如我所提到的,不能从这个定义实例化一个对象,但可以从它派生一个类。因此,该类必须实现ShowMyFace抽象方法

接口成员和类成员的区别在于,接口成员不能被实现。因此,我不想在下一章中再次提到这一点。

4.代表元

一个代表元封装了具有一些标志的一个方法。基本上,代表元是类型安全和函数指针的安全版本(回调功能)。可以同时在一个代表元实例中同时封装静态和实例方法。

尽管你可以用代表员当作具有方法,但它们的主要用途是拥有有一个类事件。再次,我想把你引到下一章,那里会详细地讨论类。

5.字符串类型

C程序员可能会诧异,但当然,C#有一个用于操作字符串数据的基本字符串类型。字符串类直接派生自对象,且它是被密封的,这意味着再不能从它派生类。就象其它类型,字符串是预定义类System String的一个别名。

我只不过想提到,尽管字符串是一个引用类型,比较时是比较值,而不是比较引用(内存地址)。字符串类型几乎用于这本书的每一个例子中,而且在这些例程中,我会介绍给你一些由字符串对象所显露的极其有趣的方法。

6.数组

一个数组包含有通过计算下标访问的变量。所有包含于数组中且被当作元素的变量必须是同一类型。这种类型自然被称为"数组类型".数组可以存储整数对象、字符串对象或者 你提出的任何对象。

数组的维数就是所谓的排(rank),它决定了相关数组元素的下标数。最常用的数组是一维数组(第一排)。一个多维数组具有的排数大于1 .每个维的下标始于0,终于维的长度减1 .

应有足够的理论支持。让我们看一下用一个数组初始化器( array initializer)初始化的数组。以上介绍C#引用类型。

【编辑推荐】

  1. 介绍Mono C#编译器
  2. C#运算符重载学习总结
  3. 概述C#语言的结构体
  4. C#遗传算法学习笔记
  5. 讨论C#分部方法

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...