关于数组的底层存储形式 在C#中,我们是这样声明数组和初始化数组的int[] array = new int[2]{1,2};而真正的数组实际上是编译器创建了一个派生于基类Array的类,暂且称之为IntArray,那么在IntArray类中存储数据的真正数据结构是什么呢?求解答!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 IL_0002: newarr [mscorlib]System.Int32 数组类型是从抽象基类型 Array 派生的引用类型。数组在托管堆中存储实际值,在堆栈中存储它的应用 1楼和2楼说的都很对,元素类型是Int32没错,数组是引用类型也明白但并不是我想问的,例如说int temp = array[0];这是通过IntArray中的索引器实现的,那么数组中所有的元素在IntArray中到底是存储在什么数据结构中的? 假如说现在要你实现IntArray中的索引器,如何? .net 有很多特殊的类型声明,Array,delegate都是。int[]是继承自Array的一个子类。不过这个类型是否是编译时存在的就不知道了。typeof(int[]).Name显示是Int32[]但在反编译时,找不到Int32[]类型的。只有Int32,Array。那可能这是动态的一个类型把。既然是Array的子类,Int32[]的索引器就可以参考Array的索引器:object IList.this[int index]{ get { return this.GetValue(index); } set { this.SetValue(value, index); }} 那Array的GetValue(int index)又是怎么实现的呢 如何实现类似xp资源管理器的下拉框 被这个问题搞晕了 C#怎样连接扫描仪,代码怎样写?而且连接的接口是USB的。 使用directshow提取每帧图像数据? 谁用过<asp:placeHolder>控件?是什么意思 ?急急急急急i! 又一个字符串的问题,大家帮忙看一下 匿名方法有什么特别的作用? c#简单问题急 Treeview 添加节点问题 C# 怎么将文件转换成数组之类的,并在数组末尾+1,使文件加密让别人打不开,解密时再减去1让文件还原? 如何写一个程序,使某个方法在每天的特定的时间去执行? datalist判断值
数组在托管堆中存储实际值,在堆栈中存储它的应用
但并不是我想问的,例如说int temp = array[0];这是通过IntArray中的索引器实现的,那么数组中所有的元素在IntArray中到底是存储在什么数据结构中的?
int[]是继承自Array的一个子类。不过这个类型是否是编译时存在的就不知道了。
typeof(int[]).Name显示是Int32[]
但在反编译时,找不到Int32[]类型的。只有Int32,Array。那可能这是动态的一个类型把。
既然是Array的子类,Int32[]的索引器就可以参考Array的索引器:
object IList.this[int index]
{
get
{
return this.GetValue(index);
}
set
{
this.SetValue(value, index);
}
}
那Array的GetValue(int index)又是怎么实现的呢