我知道一个int是一个值类型,但是什么是值类型数组?参考类型?值类型?我想将数组传递给函数以检查某些内容。我应该只传递数组,因为它只会传递它的引用,还是应该将它作为ref传递?
3 回答
MMMHUHU
TA贡献1834条经验 获得超8个赞
首先,我想告诉您Array是引用类型。为什么?我解释一下这里举一个例子。
例:
int val = 0; // this is a value type ok
int[] val1 = new int[20] // this is a reference type because space required to store 20 integer value that make array allocated on the heap.
同样,引用类型可以为null,而值类型不能为null。
值类型存储在堆栈中,引用类型存储在堆中
您可以使用out或ref将数组传递给函数。只有初始化方法不同。
更多..
米脂
TA贡献1836条经验 获得超3个赞
数组本身是引用类型。该数组的值是由数组数据类型确定的值或引用类型。在您的示例中,数组是引用类型,而值是值类型。
所有一维数组都隐式实现IList<T>
,其中<T>
是数组的数据类型。您可以使用该接口作为方法参数的数据类型。您也可以使用IEnumerable<T>
数据类型。在任何一种情况下(甚至即使您只是使用int[]
),也都不需要显式地将其作为ref
参数传递。
- 3 回答
- 0 关注
- 1751 浏览
添加回答
举报
0/150
提交
取消