삽질의 현장/- .NET

#024_닷넷(.NET)_.Net Framework 기본 - C# 여러가지 문법 (1)

shovelman 2015. 10. 26. 22:59


안녕하세요 삽잡이입니다.


이번시간에는 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으로 주겠다는 뜻입니다.

뭐... 쓸일은 그닥...


이번시간은 여기까지 알아보도록 하겠습니다.

이상 삽잡이였습니다!