Effective C#: 2.以嵌套数组取代 多维数组[5]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 qqchen79 的 blog

  也许你对msil并不那么熟悉,但即便如此也应该注意到两者实现上的一些显著的差别:嵌套数组的元素访问代码仅包含了一些简单的指令,而对于二维数组的元素访问居然包含了两个函数调用!看得更仔细些,会有更奇怪的发现:get/set应该是int32[0…,0…]类的成员函数,但int32[0…,0…]是什么类型?所有的数组都是从system.array继承来的,但system.array并不包含get/set函数的定义,而且在.net framework文档里,也找不到关于get/set这两个函数的任何相关信息!

  我已经看见了你头顶上冉冉升起的巨大的问号,现在应该是介绍.net对于各种数组类型的支持的时候了。

.net运行系统(clr)把数组分成两类:一种是以零为起始下标的一维数组,通常称为vector或者szarray;另外一种是数组起始下标非零的一维数组和所有的多维数组,通称为mdarray。由于c#不直接支持起始下标非零的数组,而且这种数组在实际应用中也很少见,所以在本章的讨论中将不会涉及这种特殊的数组类型。

本文关键:.NET, C#, Jagged Array, Array of Array, Multi-Dimensional Array
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top