如何理解用out或ref修饰的引用类型的参数(不是用ref out 修饰值类型)?
答案:1 悬赏:0 手机版
解决时间 2021-12-02 17:25
- 提问者网友:姑娘长的好罪过
- 2021-12-02 07:04
如何理解用out或ref修饰的引用类型的参数(不是用ref out 修饰值类型)?
最佳答案
- 五星知识达人网友:舍身薄凉客
- 2021-12-02 07:21
out或ref修饰引用类型可以认为是传递了引用地址的地址。
比如:
int MaxVal(ref int[] maxValIndices)
{
maxValIndices[0]=5;//对于这个加不加无所谓
maxValIndices=new int[]{};//对于这个,如果想影响原数组必须加Ref 或者Out
}
main()
{
int[] aa=new int[]{1,2,3};
MaxVal(aa);
}假如不加out 因为你里面是new了一个新数组,意味着产生了一个新的引用地址,那么外面的数组是不能随之而改变的。
追问能画一下加了ref后的变量引用图吗?从栈中到堆里的指向图。。
比如:
int MaxVal(ref int[] maxValIndices)
{
maxValIndices[0]=5;//对于这个加不加无所谓
maxValIndices=new int[]{};//对于这个,如果想影响原数组必须加Ref 或者Out
}
main()
{
int[] aa=new int[]{1,2,3};
MaxVal(aa);
}假如不加out 因为你里面是new了一个新数组,意味着产生了一个新的引用地址,那么外面的数组是不能随之而改变的。
追问能画一下加了ref后的变量引用图吗?从栈中到堆里的指向图。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯