c# ☃️

[C#] 클래스 - 소멸자 (destructor)

소로리 산적 2024. 5. 13. 12:56

구성


Members.cs

using System;
using System.Diagnostics; // Debug 클래스 사용하기 위해 

namespace MembersC
{
    public class Members
    {
        // member - private field
        private string memberName;
        private string jobTitle;
        private int salary = 1000;

        // member - public field
        public int age;

        public string JobTitle
        {
            get
            {
                return jobTitle;
            }
            set
            {
                jobTitle = value;
            }
        }

        // public memeber method - 친구일때만 불러오기 
        public void Introducing(bool isFriend)
        {
            if (isFriend)
            {
                SharingPrivateInfo();
            }
            else
            {
                Console.WriteLine("안냐세요, 저는 {0}쨜 {1} 임다 ", age, memberName);
                Console.WriteLine("제 직업은 {0} 임다.", jobTitle);
            }
        }

        private void SharingPrivateInfo()
        {
            Console.WriteLine("연봉공개 : " + salary);
        }

        // member constructor
        public Members()
        {
            age = 30;
            memberName = "홍길동";
            salary = 10000;
            jobTitle = "해적";

            Console.WriteLine("객체 생성 ");
        }

        // member - finalizer - destructor
        ~Members()
        {
            // 비운다 
            Console.WriteLine("해체 !");
            Debug.Write("해체됨 ! ");
        }
    }
}


Programs.cs

namespace MembersC;


class Program
{
    static void Main(string[] args)
    {
        Members memb1 = new Members();
        memb1.Introducing(true);

        // private 해 엑세스 불가 
        // memb1.SharingPrivateInfo();
    }
    // static void 가 끝나면 최종 사용자 호출해 memb1 해체됨 
}


실행결과


소멸자가 실행된 흔적