반응형
✔ 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);
감사합니다.
반응형
'Programming > C#' 카테고리의 다른 글
[C#] 리틀 엔디안, 빅 엔디안과 변환 방법을 알아보자 (3) | 2022.05.27 |
---|---|
[Unity, C#] FTP 다운로드, 업로드 하기 (602) | 2022.04.21 |
[C#] 문자열(string, char [])을 byte[] 바이트 배열로 변환, byte[] 바이트 배열을 string 문자열로 변환 (592) | 2022.04.19 |
[C#] Byte를 Bit 배열로 변환 - Bit를 Byte로 변환 (924) | 2022.04.01 |
[C#] 배열의 복사 - 어떤게 제일 빠르지? (Buffer.BlockCopy, Array.Copy) (1203) | 2022.03.28 |
댓글