值类型、引用类型

值类型:变量中存储的是具体的数值
引用类型:变量中存储的是内存地址(实例对象的内存地址)。


 

    class Program
    {
        static void DoWork()
        {
            int i = 0;//i是值类型,i中存储的是具体数值
            Console.WriteLine(i);//输出值为0
            Pass.Value(i);//调用pass的value方法,将i的值0传递给value方法
            Console.WriteLine(i);//输出值为0。
            //总结:值类型变量中存储的是具体的数值。做为参数传递时也是具体的数值。

            WrappedInt wi = new WrappedInt();//wi是引用类型,wi中存储的是实例对象wrappedint的内存地址,也就是指向了wrappedint。
            Console.WriteLine(wi.Number);//输出wrappedint对象的mumber字段值为0
            Pass.Reference(wi);//调用reference方法,将wi中的地址传递给reference方法
            Console.WriteLine(wi.Number);//此时输出字段值已变成42
            //总结:引用类型变量中存储的是实例对象的内存地址。做为参数传递时传递的也是内存地址。

            Console.ReadKey();
        }

        class Pass
        {
            public static void Value(int param)//当i的值传递过来时param的值为0
            {
                param = 42;//将42赋值给param,此时param的值为42
            }

            public static void Reference(WrappedInt param)//当wi中的地址传递过来时,param中存储的也是对象wrappedint的内存地址,也就是指向了wrappedint。
            {
                param.Number = 42;//将42赋值给wrappedint对象number字段
            }
        }

        class WrappedInt
        {
            public int Number;//编译器自动初始化number值为0
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值