我在C#中使用Indexer但是我想知道在什么时候将为索引器分配内存,因为索引器包含对象数组。 这是索引器的演示代码。
class person{
private object[] _demo = new object[ 2 ];
public object this[int i]
{
get { return _demo[ i ]; }
set { _demo[ i ] = value; }
} }
现在我的问题是在什么时候为索引器分配内存,因为索引器可以包含所有类型的数据类型值。
答案 0 :(得分:3)
这里有三个完全独立的部分:
object[2]
数组。该数组本身就是一个使用内存的对象。但是,此对象仅存储引用,因此无论您放入什么内容,它都将始终具有相同的大小。所有这一切,对象数组很少是一个很好的设计选择,对于"对象"和"数组"一部分。
答案 1 :(得分:2)
索引器不包含任何内存。它只是一对方法,一个用于获取,一个用于设置。您在内部用于实现索引器的数组占用内存,并且在通过new
分配类的实例时分配它。