C#简单值传递和引用传递

值传递是只参数在传参前和传参数的值没有发生变化;引用传递也叫地址传递,当它的值在方法中发生改变后,会影响传参前的值。请看下面的例子。

private void Add(int a)
        {
            a = a + 1;
        }

 

private void Add2(ref int a)
        {
            a = a + 1;
        }

//如果传参的时候,前面没有标识ref,表示采用值传递(仅局限于简单数据类型)

int a = 5;
Add(a);

MessageBox.Show(a.ToString());  //执行结果是5

 

int a = 5;
Add2(ref a);

MessageBox.Show(a.ToString()); //执行结果是6

需要注意的是:结构也是值传递

struct MyData2
    {
        private int age;
        public MyData2(int Age)
        {
            age = Age;
        }
        public void Addage()
        {
            age++;
        }

        public int getAge()
        {
            return age;
        }
    }

 

 private void Add(MyData2 data)
        {
            data.Addage();
        }

 

MyData2 data = new MyData2(20);
 Add(data);
 MessageBox.Show(data.getAge().ToString());  //执行结果是20,值前后没有变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值