반응형

ildasm 3

[C#] 5.1.6 소멸자

5.1.6 소멸자 소멸자는 개체가 소멸할 때 수행해야 할 작업에 대한 코드 블록입니다. 소멸자는 클래스에서만 정의할 수가 있고 구조체에는 정의할 수 없습니다. C++에서는 동적으로 생성된 개체를 개발자가 소멸시켜야 합니다. 하지만 C#에서는 .NET 플랫폼의 가비지 수집기가 주기적으로 개체 수명을 조사를 통해 개체를 참조하는 변수가 없는 개체를 확인하고 정책에 의해 자동으로 소멸합니다. 이에 소멸자의 접근 한정자는 개발자가 명시할 수 없습니다. 그리고 다른 메서드들과 달리 중복 정의할 수도 없습니다. 소멸자의 이름은 형식 이름 앞에 ~가 붙습니다. 그리고 가비지 수집기가 소멸되는 시점에 자동으로 호출합니다. class Man{ ~Man() { Console.WriteLine("소멸자"); }} 컴파일러는..

[C#] 5.1.2 멤버 속성

5.1.2 멤버 속성 멤버 속성은 멤버 필드에 있는 값을 얻어오거나 변경할 때 사용할 수 있게 제공하는 특별한 메서드입니다. 멤버 속성을 캡슐화하기 위해서는 형식과 속성 명을 선언하고 전용 필드의 값을 얻어올 때 사용하는 get 블록과 설정하는 set 블록을 선택적으로 정의할 수 있습니다. 각 블록에서는 메서드처럼 내부에서 수행할 작업에 대한 코드를 작성할 수 있으며 필요에 따라 get 블록과 set 블록의 접근 한정을 다르게 지정할 수도 있습니다. get 블록에서는 선언한 형식을 반환해야 하고 set 블록에서는 value 이름으로 전달된 값을 사용할 수 있습니다. using System; namespace Ex_MemberProperty { class Man { public string name; //..

[C#] 3.2 Boxing 과 UnBoxing

3.2 Boxing 과 UnBoxing C#의 object 형식은 모든 형식의 기반 형식입니다. 여기에서는 값 형식들이 object 형식 변수에 대입하거나 object 개체를 값 형식 변수에 대입하여 사용할 때 어떤 메커니즘이 진행되는지 살펴보기로 합시다. C#에서 값 형식은 구조체와 열거형으로 나눌 수 있습니다. 기본 형식에서 object와 string을 제외한 모든 기본 형식은 구조체입니다. 구조체는 여러 종류의 멤버들을 캡슐화하여 사용할 수 있습니다. 구조체는 기반 형식이 될 수 없으며 기본 생성자(매개 변수가 없는 생성자)와 소멸자를 선언할 수 없습니다. C#에서는 여러 멤버를 캡슐화하여 사용자 정의 형식을 만들 때 일반적으로 클래스를 사용하지만 단순한 경우에 구조체를 사용할 수도 있습니다. C언..

반응형