Programming/C#
[C#] int, float, bool,struct를 Null 로 초기화방법 - System.Nullable
타임박스
2022. 5. 3. 14:43
반응형
✔ Value Type 을 Null로 초기화하기
struct 멤버변수를 Null로 초기화하기
System.Nullable<T>
일반적으로 int, float, double, short 등등 (숫자로 표현되는것)은 모두 Null의 값을 가질 수 없다.
(struct도 포함)
int k = 1은 되지만 int k = null 을 선언하면 초기화 오류가 나타난다.
그래서 많은 사람들이 특정 초기값이라고 생각하며 int k = -999 이런식으로 사용하며
if(k == -999) 일때는 초기값이라고 판단하도록 했었다.
지금은 Nullable을 사용하여 null처리가 가능해졌다.
사용방법은 Type 뒤에 ?를 넣으면 된다.
● Value Type 을 Null로 초기화하여 사용방법
//Value Type 사용법
int? k = null;
bool? b = null;
if (k.HasValue)
{
//값을 가지고 있다면 (null이 아니면)
}
else
{
//null이면
}
//배열 사용법
int?[] arr = new int?[10];
if (arr[0].HasValue)
{
//값을 가지고 있다면 (null이 아니면)
}
else
{
//null이면
}
●struct에서 Nullable 사용방법
public struct struct_Test
{
public int? k;
public int? j;
}
static void Main(string[] args)
{
struct_Test test1 = new struct_Test();
if (test1.k.HasValue)
{
//값을 가지고 있다면 (null이 아니면)
}
else
{
//null이면
}
}
HasValue를 확인하지 않고 값이 Null일 경우에 초기화를 하고 싶다면 아래와 같이 사용할 수도 있다.
●Null 체크 후 데이터 넣기
int? a= null;
//a 값이 Null 이면 -1로 초기화
int result = a ?? -1;
Console.WriteLine(result);
감사합니다.

반응형