值参数与引用参数

总的来说值参数和引用参数都是一种参数传递的方式。
本质上:值参数传递就是将实参的值复制给形参,而引用参数就是将形参直接当做实参的别名。
从内存分配上也可以看出
值参数:在栈中为形参分配空间内存后,将实参的值复制给形参。
引用参数:在栈上不会分配空间内存,形参将作为实参变量的别名,并指向相同的内存位置。
两者的区别:
值参数:未使用过ref或out修饰符的参数、
引用参数:在方法的声明和调用中都使用ref
注意点:
在变量在用作实参之前,必须要被赋值。如果是引用类型变量,可以赋值为一个引用或null

值参数例子:

   class Program
    {
        static void Main(string[] args)
        {
            Text A = new Text();
            int B = 5;
            Way(A, B);//实参
            Console.WriteLine("A.a:{0},B:{1}",A.a,B);
            Console.ReadLine();

        }
        static void Way(Text num1, int num2)//形参
        {
            num1.a = num1.a + 3;
            num2 = num2 + 6;
            Console.WriteLine($"num1.a:{num1.a},num2:{num2}");
        }

    }
    class Text
    {
        public int a = 20;//引用类型
    }


引用参数例子

  class Program
    {
        static void Main(string[] args)
        {
            Text A = new Text();
            int B = 5;
            Way(ref A,ref  B);//实参
            Console.WriteLine("A.a:{0},B:{1}",A.a,B);
            Console.ReadLine();

        }
        static void Way(ref Text num1,ref int num2)//形参
        {
            num1.a = num1.a + 3;
            num2 = num2 + 6;
            Console.WriteLine($"num1.a:{num1.a},num2:{num2}");
        }

    }
    class Text
    {
        public int a = 20;//引用类型
    }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值