개발
[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 의 사용법을 잘 알고, 사용하면, 코드도 간결해지고, 가독성도 좋아지는 두가지 효과를 얻을 수 있습니다.
제 블로그를 더 편하게 보는 방법!
공감 한번씩 눌러주세요.
더 좋은 글과 내용으로 보답드립니다!