关于C#中给引用类型加上“REF”后有什么不同
答案:2 悬赏:80 手机版
解决时间 2021-03-08 01:48
- 提问者网友:泪痣哥哥
- 2021-03-07 00:57
关于C#中给引用类型加上“REF”后有什么不同
最佳答案
- 五星知识达人网友:西风乍起
- 2021-03-07 01:57
ref关键字传递栈地址
引用类型传递的是堆地址
如果你把ref 使用到引用类型上那么就会把引用类型的地址传递过去
而不是把引用类型应用的堆地址传递过去
引用类型:他的引用是存储在栈地址 他的值存储在堆地址 引用里边的值就是他堆的地址
值类型:值存储在栈地址
如果你先把一个引用类型当作值类型看
那么他的值就是他所引用的地址
所以如果一个引用类型加上Ref 那就可以在被调用函数中修改传递哪个参数的
对象
void main()
{
A a=new A();
a.b="c";
Main1(a);
Console.WriteLine(a.b);
}
void Main1(ref A a)
{
a=new A();//这个时候上边的A已经不是以前的A了
}
引用类型传递的是堆地址
如果你把ref 使用到引用类型上那么就会把引用类型的地址传递过去
而不是把引用类型应用的堆地址传递过去
引用类型:他的引用是存储在栈地址 他的值存储在堆地址 引用里边的值就是他堆的地址
值类型:值存储在栈地址
如果你先把一个引用类型当作值类型看
那么他的值就是他所引用的地址
所以如果一个引用类型加上Ref 那就可以在被调用函数中修改传递哪个参数的
对象
void main()
{
A a=new A();
a.b="c";
Main1(a);
Console.WriteLine(a.b);
}
void Main1(ref A a)
{
a=new A();//这个时候上边的A已经不是以前的A了
}
全部回答
- 1楼网友:蓝房子
- 2021-03-07 02:21
(楼上说得好)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯