为了账号安全,请及时绑定邮箱和手机立即绑定

int []是引用类型还是值类型?

int []是引用类型还是值类型?

Helenr 2019-10-17 15:28:47
我知道一个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将数组传递给函数。只有初始化方法不同。


更多..


查看完整回答
反对 回复 2019-10-17
?
米脂

TA贡献1836条经验 获得超3个赞

数组本身是引用类型。该数组的值是由数组数据类型确定的值或引用类型。在您的示例中,数组是引用类型,而值是值类型。

所有一维数组都隐式实现IList<T>,其中<T>是数组的数据类型。您可以使用该接口作为方法参数的数据类型。您也可以使用IEnumerable<T>数据类型。在任何一种情况下(甚至即使您只是使用int[]),也都不需要显式地将其作为ref参数传递。


查看完整回答
反对 回复 2019-10-17
  • 3 回答
  • 0 关注
  • 1751 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信