일단 읽어봐 위키러들아!


먼저 c#에 대한 소개를 하자면 Java나 c++의 중간정도 되는 문법인데

평소에는 Java를 닮고 struct나 unsafe 키워드를 통해서 비트연산 문법을

지원해주는 건 c++과 비슷하지 않나 생각함. 소멸자나 out도 있음


하!지!만!


C#만의 독특하고 아름다운 문법들이 있는디!!!

오늘은 그 중 널 조건 연산자에 대해서 소개시켜드림!






먼저 간단한 Dollar 클래스를 만들어 봤음.







그리고 간단한 테스트 케이스도 만들어 봄.


이건 중요한게 아니니 안 읽히면 일단 넘어가삼






어쨋든 Dollar 클래스의 addDollar() 매서드를 실행 시켤려는데 null객체가 들어온다면?
그리고 그때 exception을 일으키고 싶다면 어떻게 해야할까
보통은 이렇게 할 것임.


이 코드도 나쁘지는 않음.

근데
여기서 널 조건 연산자를 사용하면 극적으로 예뻐질 수 있는데



며용!!?. 이것이 다 뭐임요 ?? throw new Excepton();











지금부터 설명 들어감


먼저 이 녀석들은 객체의 매서드나 맴버에 접근하기 전에 해당 객체가 널인지 아닌지 체크하는데
만약 null이라면 null를 반환한다.
예를들자면

amount += dollar?.getAmount() ?? throw new DollarException();

amount += null ?? throw new DollarException();

둘은 해당 문맥에서는 같은 의미인 샘!







다음은 ?? 인데
한 사이트의 표현을 빌리자면 (MS/Doc/.NET/C#)

null 병합 연산자 ?? 는 null 이 아닌 경우 왼쪽 피연산자의 값을 반환합니다. 

라고 하는듯 하다.
다시말해 왼쪽의 값이 null일 경우를 대비해 오른쪽의 값을 준비했습니다~ 라는 느낌

이 표현에 대한 다른 예를 들자면 


이런 식으로 백업 데이터를 사용하는 문법으로도 사용 가능한 것



c#에 흥미가 생겼다면 개추!