[C#] 6일차 - 38. Nullable형C#/C#200제2021. 1. 21. 15:04
Table of Contents
사용방법
Nullable<T> i = null; // T는 자료형
// 아래처럼도 사용가능
int? i = null;
Nullable형의 특성
- Nullable<T> 형은 값 형에 null을 할당할 수 있게 합니다.
- ? 연산자는 Nullable형ㅇㄹ 간단히 표현할 수 있게 합니다.
- Value속성은 null이면 InvalidOperationException을 발생합니다. 아니면 값을 return합니다.
- HasValue속성은 변수가 값을 가지면 true, null이면 false를 return합니다.
- Nullable형에서는 ==과 != 연산만 사용할 수 있습니다. 다른 비교는 Nullable 클래스의 Compare()메소드를 사용합니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A038_Nullable
{
class Program
{
static void Main(string[] args)
{
Nullable<int> i = null;
Console.WriteLine(i.GetValueOrDefault());
if (i.HasValue)
Console.WriteLine(i.Value); // Console.WriteLine(i);
else
Console.WriteLine("Null");
int? x = null;
int j = x ?? 0; // Nullable의 값을 non-Nullable에 할당 할 때는 ?? 연산자 사용
// x가 null이아니면 x의 값을 null일 때는 0을 할당한다는 의미
Console.WriteLine("x = {0}, j = {1}", x, j);
Console.WriteLine("x >= 10 ? {0}", x >= 10);
Console.WriteLine("x < 10 ? {0}", x < 10);
// Null은 모든 숫자보다 작다고나옴
if (Nullable.Compare<int>(i, j) < 0)
Console.WriteLine("i < j");
else if (Nullable.Compare<int>(i, j) > 0)
Console.WriteLine("i > j");
else
Console.WriteLine("i = j");
}
}
}
반응형
'C# > C#200제' 카테고리의 다른 글
[C#] 6일차 - 40. if~else 조건문 (0) | 2021.01.21 |
---|---|
[C#] 6일차 - 39. object 타입과 boxing, unboxing (0) | 2021.01.21 |
[C#] 6일차 - 37. 변수의 초기화와 default (0) | 2021.01.21 |
[C#] 6일차 36. Null 조건 연산자(?) (0) | 2021.01.21 |
[C#] 6일차 - 35. 배열과 객체를 메소드 매개변수로 전달 (0) | 2021.01.21 |
@반나무 :: 반나무_뿌리
3년차 WPF 개발자입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!