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的一个实例,而get、set和address分别是这个类的三个成员函数。由于这些函数是由运行系统定义的,在类集文件中固然找不到他们的实现,即便是.net framework文档中也不见它们的踪影。