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

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

本文简介:选择自 qqchen79 的 blog

ourier new'; mso-bidi-font-family: 'courier new'">则是设置数组中特定下标的元素的值;address用于取得数组中特定元素的地址。例如,对于一个包含double数据的三维mdarray,以上三个函数的调用形式如下所示:

double  get(int d1, int d2, int d3);

void    set(int d1, int d2, int d3, double v);

double* address(int d1, int d2, int d3);

但是由于这些函数的具体实现涉及到具体数组的元素类型(主要是用于数组中的偏移量计算),所以clr不可能直接提供这些函数的实现。只有当程序中引用了包含某个具体类型的mdarray的时候,clr才会真正定义一个具体的数组类,并且生成上面提到的几个函数的实际代码。前面见到的int32[0…,0…]就是clr生成的mdarray的一个实例,而getsetaddress分别是这个类的三个成员函数。由于这些函数是由运行系统定义的,在类集文件中固然找不到他们的实现,即便是.net framework文档中也不见它们的踪影。

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

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

go top