Billpeng Space

技术源自生活
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

关于引用类型一个有意思的测试

Posted on 2014-01-07 19:28  billpeng  阅读(245)  评论(1编辑  收藏  举报
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyTest
{
    class Program
    {
        static void Main(string[] args)
        {
            MyClass first = new MyClass();
            first.value = "原值";
            MyClass second = first;

            //显示原值
            Console.WriteLine("原值:" + second.value);
            //显示改变值
            first.value = "改变值";
            Console.WriteLine("改变值:" + second.value);

            first = null;
            //Console.WriteLine("first为null后的first值:" + first.value);//这里会报空指针
            Console.WriteLine("first为null后的second值:" + second.value);
            
            Console.ReadKey();
        }
    }

    public class MyClass
    {
        public string value { get; set; }
    }
}

由上可得:

1.首先MyClass是个引用类型

2.当first的值改变了,second中的值也改变了

3.当first置null时,虽然first中的指针被清空了(此时访问first会报空指针),但事实上内存里的对象并没有清空(此时访问second依然可以取到值)