인용 유형에 대한 재미있는 테스트

3441 단어 참조 유형
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. 퍼스트가null에 설치되었을 때 퍼스트의 바늘이 비워졌지만 (퍼스트에 접근하면 바늘이 비워집니다) 사실상 메모리의 대상은 비워지지 않았습니다. (이 때second에 접근하면 값을 찾을 수 있습니다.)

좋은 웹페이지 즐겨찾기