뉴질랜드 다이어리(NZ Diary) 라빠

[C#] Nullable type 의 사용방법 본문

개발

[C#] Nullable type 의 사용방법

Donochi 2016. 11. 29. 07:41


C# 2.0 부터 도입된 Nullable Type 을 제대로 사용해보자.


말도 안되는 코드이긴 하지만, 아래의 예제를 보시죠.

(Foo class 가 생성되고, foo 함수가 처음 불리는 시점에만 i 의 값을 업데이트 해야 하는 상황이라고 가정합니다.)

1
2
3
4
5
6
7
8
9
class Foo {
    int i = -1;
 
    private void foo(int j) {
        if (-1 == i) {
            i = j;
        }
    }
}
cs


-1 을 입력하는 경우가 없다고 가정하면, 위킈 코드는 문제없이 동작합니다.

그런데 만약 입력값에 이런 제약조건이 없는 경우라면 어떻게 구현해야 할까요?


Foo class 에 별도의 bool 변수를 선언하고, 이를 이용하여 i 의 업데이트 여부를 관리하는 방법이 유일합니다.

아래와 같은 코드가 되겠죠?

1
2
3
4
5
6
7
8
9
10
11
class Foo {
    bool updated = false;
    int i;
 
    private void foo(int j) {
        if (!updated) {
            i = j;
            updated = true;
        }
    }
}
cs


이때에 Nullable 을 사용하면 쉽게 관리가 가능합니다.

1
2
3
4
5
6
7
8
9
class Foo {
    int? i = null;
 
    private void foo(int j) {
        if (!i.HasValue) {
            i.Value = j;
        }
    }
}
cs


Nullable type 의 사용법을 잘 알고, 사용하면, 코드도 간결해지고, 가독성도 좋아지는 두가지 효과를 얻을 수 있습니다.



제 블로그를 더 편하게 보는 방법!

네이버 블로그에서 티스토리 구독하기!


공감 한번씩 눌러주세요.

더 좋은 글과 내용으로 보답드립니다!