Page 39 -
P. 39

사실 이처럼 코드를 작성하는 경우가 흔하지는 않다. 그리고 외부 타입의 매개변수와 중첩 타입의
               매개변수를 모두 지정해야 한다는 사실을 정확히 인지하고 있다면, 그리 어렵지 않게 사용할 수
               있을 것이다.

               지금까지 C# 2에 추가된 기능 중 단일 기능으로는 가장 큰 부분이라고 할 수 있는 제네릭에 대해
               서 모두 알아봤다. 다음으로 알아볼 내용은 제네릭을 기반으로 하는 null 가능 값 타입이다.






               2.2      null 가능 값 타입                                      C# IN DEPTH






               null 참조(null reference)는 1965년 토니 호아레(Tony Hoare)에 의해 알골(Algol) 언어에 최초로 도
               입되었는데, 그는 이를 두고 ‘수십억 달러짜리 실수’라고 자책했다고 한다. 실제로 수많은 개발자
               가 자신이 개발한 코드가 NullRefereceException(.NET), NullPointerException(자바) 혹은 이

               와 유사한 예외를 일으킬 때마다 크나큰 좌절감을 맛보곤 한다. 너무 흔한 문제이다 보니 스택 오
               버플로 등을 살펴보면 이와 관련된 수많은 질문을 찾아볼 수 있다. null을 허용한다는 것이 이처
               럼 나쁜 것이라면 C# 2와 .NET 2.0에는 왜 null 가능 값 타입을 추가한 것일까? 우선 null 가능

               값 타입을 이용해서 해결하려 했던 문제가 무엇인지 알아보자. 그리고 null 가능 값 타입을 도입
               하기 이전에는 동일한 문제를 어떻게 해결했는지도 함께 알아보자.




               2.2.1  목적: 정보가 없음을 나타내는 방법


               어떤 정보를 나타낼 때 하나의 변수만 사용해도 된다면 상당히 편리할 것이다. 만약 나타내려는
               정보가 항상 존재한다고 보장할 수 없다면 어떻게 해야 할까? 다음과 같은 상황을 고려해 보자.


                 ●   주문 정보를 모델링할 때, 주문자가 속한 회사의 세부 내용을 포함하도록 했다고 가정해 보
                    자. 하지만 몇몇 경우에는 주문자가 회사를 대표하여 주문한 것이 아닐 수도 있을 것이다.

                 ●   사람을 모델링할 때, 생일과 사망일을 포함하도록 했다고 가정해 보자. 아직 살아 있는 사람
                    일 경우는 어떻게 할까?

                 ●   최소 가격과 최대 가격을 지정하여 제품을 추리는 필터를 모델링하고 있다고 가정해 보자.
                    고객이 최대 가격을 지정하지 않을 수도 있지 않을까?

         080
   34   35   36   37   38   39