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#과 파이썬용 OpenCV의 데이터 형식과 행렬 및 배열 연산
  • 이미지/동영상/카메라를 활용한 입출력과 결과 저장
  • 전처리 과정과 정보를 탐색하기 위한 이미지 변형
  • 유의미한 정보를 검출하기 위한 이미지 변환
  • 이미지에서 정보를 검출 및 인식
  • 객체 검출을 포함한 모션 추적
  • K-means, KNN, SVM 등의 머신러닝 알고리즘 적용 방법
  • 카페(Caffe), 다크넷(Darknet), 텐서플로 모델을 활용한 딥러닝 모듈 적용 방법
  • Tesseract-OCR과 C# OpenCvSharp4를 활용한 프로젝트
  • 텐서플로와 Python OpenCV4를 활용한 프로젝트
  • 윤대희 저 | 위키북스

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

    후원하기


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