C# Nullable 타입변수 관련, [데이터타입?] 그리고 ?? 연산자
데이터타입? 선언 Ex) int? nInt , bool? nBool 등
int, bool 등의 값 타입에 ?를 사용하여 null을 할당할 수 있게 해주며
데이터타입 선언시 ? 사용은
제네릭 System.Nulable<T> 구조체 타입의 인스턴스를 생성하는 구문의 단축표기법입니다.
하단의 내용처럼 직접 Nullable<데이터타입>을 사용할 수 있습니다.
static void Main(string[] args)
{
//int n1 = null; 일반값 타입에 null을 할당할수없다
int? n2 = null;
//bool b1 = null; 일반값 타입에 null을 할당할수없다
bool? b2 = null;
//string? str = "Hello";
Console.WriteLine("n2:" + n2);
Console.WriteLine("b2:" + b2);
Nullable<int> nilInt = 100; //Nullable<T>사용
Console.WriteLine("nilInt: " + nilInt);
nilInt = null;
Console.WriteLine("nilInt: " + nilInt);
bool? b3 = getFuncReturn() ?? false;
Console.WriteLine("b3: " + b3);
}
private static bool? getFuncReturn()
{
return null;
}
?? 연산자
반환된 값이 null일 경우, null대신 지정된 값을 반환받을 수 있게 한다
상단의 bool? b3 = getFuncReturn() ?? false; 구문
'프로그래밍&IT > C#' 카테고리의 다른 글
[.Net C#] Datagridview에서 문자열 -> 숫자열 정렬하기 (8) | 2016.01.07 |
---|---|
[.Net C#] 확장메서드 (extension method) (0) | 2015.12.21 |
C# 암시적 타입변환 변수, var 타입 (0) | 2015.12.18 |
System.Environment 클래스관련해서 (0) | 2015.12.17 |
Thread 관련 간단 정리2. 멀티스레드 관련 - ThreadPool (0) | 2015.12.13 |