C# ref参数问题

c#中ref参数到底是什么?该怎么用?... c# 中 ref参数到底是什么 ?该怎么用? 展开
 我来答
kamong2012
2014-09-10 · TA获得超过144个赞
知道答主
回答量:7
采纳率:0%
帮助的人:5.8万
展开全部
在C#中,你给一个方法传输值类型参数时,实际上是使用的这个参数的一个副本,就是将原来的变量复制一份,然后传给一个方法,让其进行操作。所以在方法内部对参数的修改等不会对原来的参数造成影响(这个其实就是值类型和引用类型的区别)。但是有些时候,又需要这种影响。ref的作用就是这个。它将变量本身而不是副本传给方法,所以对参数的修改原来变量的值。
int a = 0;
Console.WriteLine(a.ToString()); //输出是0
public void ModifyVaule(ref int a)
{
a = 1;
}
Console.WriteLine(a.ToString()); // 输出是1。
此外,out修饰符也起到这个作用,二者的区别就是ref需要初始化,而out修饰的参数不需要初始化。
zly0304302
推荐于2017-11-28 · TA获得超过2462个赞
知道小有建树答主
回答量:744
采纳率:0%
帮助的人:605万
展开全部
static void Main(string[] args)
{
int x = 0;
GetVal(x);
Console.WriteLine(x);
//x=0,很遗憾,传递的是值类型,x的值没有变化

GetRefVal(ref x);
Console.WriteLine(x);
//x=10, x的值已经改变啦
Console.ReadLine();
}

private static void GetVal(int x)//这里只是单纯的复制x=0这个变量.传说中的传值
{
x = 10;
}

private static void GetRefVal(ref int x)//参数x是1个指向堆栈中值类型为int的指针
//传说中的传址
{
x = 10;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
surplushaode
2012-02-15 · TA获得超过2055个赞
知道大有可为答主
回答量:2510
采纳率:0%
帮助的人:2383万
展开全部
就是传递引用的意思噻。
你传递过去的参数可以作为调用函数的输入,可以在那个函数里面处理过后,当修改这个参数过后,这个参数修改过后的值就会直接返回到原值的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式