본문 바로가기
창고/Backup_2013_0121

C# 널가능 타입

by 가능성1g 2012. 2. 17.
반응형

제네릭( 템플릿 ) 을 이용해서 만든것이다보니 C++ 에도 당연히 있을것 같아서 독특한 기능이라고 보긴 어렵지만~

어쨌든 DB 연동할때는 꼭 사용할것만? 같은 타입이라서 정리한다.

*. 널 가능타입
C#에서는 제네릭을 이용해 null 표현을 가능하도록 레퍼 클래스를 생성함
System.Nullable<T>

? 기호로 이용가능

/* 사용법 */
byte? Value; //0~255 또는 null 값
bool? bLuner;//true,false, null 값

HasValue 값이 정의되어 있는지 ( 널인지 아닌지 ) 판단
:true  //널아님
:false // 널

Value 실제값을 읽음
널일경우 InvalidOperationException 예외 발생

/* 사용하기 */
int? Age; //Nullable<int> Age; 와 동일
Age = 3;

if(Age.Hasvalue) //Age != null 동일
{
    Console.WriteLine(Age); //Console.WriteLine(Age.Value) 동일
}

-. ?? 기호
좌항은 반드시 널가능 또는 참조타입

a ?? b // a 가 널이면 b, 아니면 a 를 리턴

/* 사용하기 */
int? Age = null;
int MyAge;
MyAge = Age ?? 25;  // 25 입력됨

반응형