π¦ Nullable Type
null κ°μ κ°μ§ μ μλ λ°μ΄ν° νμ μ null κ°μ κ°μ§ μ μλλ‘ νλ νμ μ΄λ€.
μλ₯Ό λ€μ΄ bool νμ μ μ€μ§ true, false κ°λ§μ κ°μ§ μ μλ€. (μ΄κΈ°νλ₯Ό νμ§μμΌλ©΄ false)
nullable typeμ μ¬μ©νλ©΄ null κ°μ κ°μ§ μ μλ€.
π§ Document
π§ μ μΈ
int a = 0; // κΈ°λ³Έ νμ
int? b = null; // nullable type
int? c = a; // nullable typeμ κ°μ λ£μ μλ μμ
- λ°μ΄ν° νμ λ€μ ? λ¬Έμλ₯Ό λΆμ¬μ€λ€.
π§ κΈ°λ³Έκ° κ²μ¬
int? a = 1;
if(a.HasValue)
{
// κ°μ΄ μμ. μ¦ null κ°μ΄ μλ.
}
else
{
// nullμ λ΄κ³ μμ.
}
- HasValue μμ±μ μ΄μ©νμ¬ ν΄λΉ λ³μμ κ°μ΄ ν λΉλμ΄ μλμ§ μ²΄ν¬ν μ μλ€.
π§ κ° κ°μ Έμ€κΈ°
int? a = 1;
if(a.HasValue)
{
Console.WriteLine($"a is {a.Value}");
}
- Value μμ±μ μ΄μ©νμ¬ ν΄λΉ λ³μμ ν λΉλμ΄μλ κ°μ κ°μ Έμ¬ μ μλ€.
int? a = 1;
Console.WriteLine($"a is {a.GetValueOrDefault()}"); // a is 1
a = null;
Console.WriteLine($"a is {a.GetValueOrDefault()}"); // a is 0
- GetValueOrDefault λ©μλλ₯Ό μ¬μ©ν΄μ κ°μ κ°μ Έμ¬ μ μλ€.
- ν΄λΉ λ³μμ κ°μ΄ ν λΉλμ΄ μλ€λ©΄, κ·Έ κ°μ΄ return λλ€.
- ν΄λΉ λ³μμ κ°μ΄ ν λΉλμ΄ μμ§ μλ€λ©΄, κΈ°λ³Έ λ°μ΄ν° νμ μ default κ°μ΄ return λλ€.
- defualt κ°
μ«μ : 0
char : \0
string : null
π§ μ£Όμμ
- ν λΉλ κ°μ΄ μλ μνλ‘ Valueμμ±μ μ¬μ©νκ² λλ€λ©΄ μμΈλ₯Ό λμ§λ€.
λ°λΌμ HasValue μμ±μ μ¬μ©νμ¬ κ°μ²΄ν¬λ₯Ό λ¨Όμ ν ν μ¬μ©ν΄μΌνλ€.
'C#' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C#] ref & out (0) | 2022.10.26 |
---|---|
Interface, Abstract, Virtual (0) | 2021.11.12 |
C# μ£Όμμ λν XML νκ·Έ (0) | 2021.11.01 |