일단 읽어봐 위키러들아!
먼저 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#에 흥미가 생겼다면 개추!