C# ref参数问题

引用自百度知道
第一个:
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;
        }
第二个:
在C#中,你给一个方法传输参数时,实际上是使用的这个参数的一个副本,就是将原来的变量复制一份,然后传给一个方法,让其进行操作。所以在方法内部对参数的修改等不会对原来的参数造成影响。但是有些时候,又需要这种影响。ref的作用就是这个。它将变量本身而不是副本传给方法,所以对参数的修改原来变量的值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值