안녕하세요 삽잡이입니다.
이번시간에는 C#에서 제공하는 여러 문법들을 알아보고자합니다.
- finalize()
finalize()는 C#에서 '소멸자'를 의미합니다.
닷넷에서는 이미 객체를 마무리하기 위해 만들어 놓은 메서드가 있는데
이 메서드가 바로 'finalize()'라는 것입니다.
왜 소멸자를 안만들었을까요?
소멸자를 가지지 않은 언어들이 있을 수 있으니 안만든 것입니다.
소멸자가 없는 언어들은 닷넷에서는 finalize() 메서드를 direct로 집어넣습니다.
-nullabe
nullable 타입은 'NULL'이 가능한 타입을 말합니다.
즉, nullable 타입은 값 타입.. 그 중에서도 내장 타입에 존재합니다.
int?, double? 과 같이 물음표(?)를 붙여서 사용합니다.
NULL을 가질 수 있는 타입은 오직 참조 타입입니다.
그런데 값 타입에도 NULL을 넣고 싶을 때 '?'를 붙임으로써 만들 수 있다 이겁니다.
string 형식은 안됩니다...
참조형은 기본적으로 'NULL'이 가능한 타입이기 때문입니다.
따라서 nullable 이라는 것은 string에서 없습니다.
정리하자면,
'참조 타입에는 없다!' '값 타입에만 있다!' 입니다.
그렇다면 '??'는 무엇일까요...
이번 글에서는 물음표도 함부로 못 붙이겠군요....허허...
?? 연산자는 '기본 값'이라는 연산자입니다.
진짜 물음표를 뜻하는 것이 아니라, '타입에 대한 기본 값'을 의미하는 것입니다.
예를 들어서, 'int? n = k()?? 0;' 과 같은 코드가 있다고 해봅시다.
Sap() 이라는 함수를 호출 했는데
만약, Sap()의 리턴 값이 NULL이라면 기본 값을 0으로 주겠다는 뜻입니다.
뭐... 쓸일은 그닥...
이번시간은 여기까지 알아보도록 하겠습니다.
이상 삽잡이였습니다!
'삽질의 현장 > - .NET' 카테고리의 다른 글
#026_닷넷(.NET)_.Net Framework 기본 - 접근 한정자 (0) | 2015.10.27 |
---|---|
#025_닷넷(.NET)_.Net Framework 기본 - 여러가지 문법 (2) (0) | 2015.10.26 |
#023_닷넷(.NET)_.Net Framework 기본 - ToString() 오버라이드 (0) | 2015.10.24 |
#022_닷넷(.NET)_.Net Framework 기본 - 참조 타입과 값 타입에 대하여 (0) | 2015.10.24 |
#021_닷넷(.NET)_.Net Framework 기본 - C# Property (0) | 2015.10.24 |