码迷,mamicode.com
首页 > Web开发 > 详细

.Net学习笔记----2015-06-28(值类型和引用类型)

时间:2015-06-29 06:08:33      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

值类型:int  double  char  decimal  bool  enum  struck;存在内存的栈里

引用类型: string   数组    自定义类    集合     object    接口;存在堆里

值传递和引用传递:

1、值类型在复制的时候,传递的是这个值的本身

2、引用类型在复制的时候,传递的是这个对象的引用

技术分享

技术分享

字符串是个特殊:

  字符串由于其不可变性,每次赋值都会为其开辟一块新的内存如:

            string s1 = "张三";
            string s2 = s1;
            s2 = "李四";
            Console.WriteLine(s1);
            Console.WriteLine(s2);
            Console.ReadKey();

最终结果,s1 = 张三, s2 = 李四

 

            int number = 10;
            TestTwo(ref number);
            Console.WriteLine(number);
            Console.ReadKey();

        }

        public static void TestTwo(ref int n)
        {
            n += 10;
        }

上述代码中,ref把n的地址变成类number的地址,也就是,ref把值传递变成了引用传递。

如果不加ref,值传递是把number的值传递给n,方法中没有返回值,不会改变外部调用方法时传递的实参,

但是加了ref以后,n接收的是number的地址,所以n的改变就会影响number的值(按照自己的理解所写,有点乱,呵呵)

.Net学习笔记----2015-06-28(值类型和引用类型)

标签:

原文地址:http://www.cnblogs.com/mikie/p/4606439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!