C# 강좌 : 제 15강 - 생성자 & 소멸자

C# Constructor & Destructor

C# 강좌 : 제 15강 - 생성자 & 소멸자
[ C# ] - 윤대희

생성자 (Constructor)와 소멸자 (Destructor)


생성자 (Constructor)클래스와 같은 이름을 갖는 함수를 의미합니다.

객체가 초기에 생성될 때 자동적으로 1회 호출되는 함수입니다.

주로 객체 내의 정보를 초기화 하는 수단이며, return 값이 없습니다.

  • Tip : 명시적으로 생성자를 선언하지 않아도 컴파일러가 암시적으로 기본생성자를 생성합니다.


소멸자 (Destructor)란 객체가 메모리에서 제거될 때마다 실행되는 함수입니다.

가비지 컬렉터(garbage collector)가 객체의 소멸을 관리하기 때문에 언제 실행될지 예측할 수 없습니다.

  • Tip : 명시적으로 소멸자를 선언하지 않아도 컴파일러가 암시적으로 기본소멸자를 생성합니다.



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace test
{
    class ClassFile
    {
        public ClassFile()
        {
            Console.WriteLine("생성");
        }

        public void start()
        {
            Console.WriteLine("실행");
        }

        ~ClassFile()
        {
            Console.WriteLine("소멸");
        }
    }
}

위와 같은 클래스 파일을 만들고 생성자와 소멸자를 구성하였습니다.


private void button1_Click(object sender, EventArgs e)
{
    ClassFile class_start = new ClassFile();
    class_start.start();
}

button1에 ClassFile을 불러오고 start()를 실행할 경우 생성, 실행 문구를 확인할 수 있습니다.


private void button2_Click(object sender, EventArgs e)
{
    GC.Collect();
}

button2가비지 컬렉터(garbage collector)를 호출하면 소멸이라는 문구를 확인할 수 있습니다.

  • Tip : GC.Collect(); 더 이상 활용되지 않는 자원(주로 메모리)을 검출하여 제거를 수행하는 모듈


class 이용하여 객체를 만들 때 초기화해야하거나 1회 실행되어야 하는 코드가 있을때 생성자를 이용하고, 소멸자는 언제 호출될지 모르기 때문에 구현하지 않는것이 좋습니다.



Book Image

책이 출간되었습니다!

C#과 파이썬을 활용한 OpenCV 4 프로그래밍

컴퓨터 비전 기초 이론부터 머신러닝을 활용한 영상 처리 프로젝트까지

  • C# OpenCvSharp4
  • Python OpenCV4
  • Using Tesseract
  • Using TensorFlow
  • Using Regular Expression
  • 윤대희 저 | 위키북스

    [yes24 바로가기] [알라딘 바로가기] [교보문고 바로가기]

    후원하기


    ⤧  Previous post C# 강좌 : 제 14강 - 클래스 & 메소드 (2) ⤧  Next post C# 강좌 : 제 16강 - 배열
    C# Category