κΉμ μ
νμΈλνκ΅ 22νλ² μ»΄ν¨ν°κ³΅νκ³Ό
νμΈλνκ΅ 22νλ² μ»΄ν¨ν°κ³΅νκ³Ό
νλ³νμ νλ‘κ·Έλλ°μμ λ°μ΄ν° νμ
μ λ€λ₯Έ νμ
μΌλ‘ λ³ννλ κ³Όμ μ
λλ€. C#μμλ μ£Όλ‘ as νλ³νκ³Ό κ΄νΈλ₯Ό μ΄μ©ν λͺ
μμ νλ³ν(μΊμ€ν
)μ΄ μ¬μ©λ©λλ€. λ³Έ λ³΄κ³ μμμλ λ κ°μ§ νλ³ν λ°©μμ νΉμ§, μ°¨μ΄μ , μ₯λ¨μ μ λΉκ΅νμ¬ μ€λͺ
ν©λλ€.
as νλ³νas ν€μλλ₯Ό μ¬μ©ν νλ³νμ μμ ν νλ³νμ μ 곡ν©λλ€. λ³νμ΄ μ€ν¨ν κ²½μ° μμΈκ° λ°μνμ§ μκ³ nullμ λ°ννκΈ° λλ¬Έμ νλ‘κ·Έλ¨μ΄ μ€λ¨λμ§ μμ΅λλ€. μ΄λ μ£Όλ‘ μ°Έμ‘° νμ
(Reference Type)κ³Ό Nullable νμμ μ¬μ©λ©λλ€.
null λ°ν.null 체ν¬λ₯Ό ν΅ν΄ νμΈν΄μΌ ν¨.object obj = "Hello";
string str = obj as string; // μ±κ³΅: strμ "Hello"
object obj2 = 123;
string str2 = obj2 as string; // μ€ν¨: str2λ null
if (str2 == null)
{
Console.WriteLine("νλ³ν μ€ν¨");
}
nullλ‘ λ°ννκΈ° λλ¬Έμ μΆκ°μ μΈ null 체ν¬κ° νμν¨.κ΄νΈλ₯Ό μ¬μ©νλ νλ³νμ λͺ
μμ νλ³ν(μΊμ€ν
)μΌλ‘, νλ³νμ΄ μ€ν¨ν κ²½μ° InvalidCastException μμΈλ₯Ό λ°μμν΅λλ€. μ°Έμ‘° νμ
κ³Ό κ° νμ
λͺ¨λμμ μ¬μ©ν μ μμ΅λλ€.
InvalidCastException).object obj = "Hello";
string str = (string)obj; // μ±κ³΅: strμ "Hello"
object obj2 = 123;
string str2 = (string)obj2; // μ€ν¨: InvalidCastException λ°μ
try-catch λΈλ‘μ μ¬μ©ν΄μΌ ν¨.| κ΅¬λΆ | as νλ³ν |
κ΄νΈ νλ³ν |
|---|---|---|
| μ€ν¨ μ κ²°κ³Ό | null λ°ν |
InvalidCastException λ°μ |
| λμ | μ°Έμ‘° νμ , Nullable νμ | λͺ¨λ νμ (μ°Έμ‘°, κ° νμ ) |
| μμ μ± | μμ (μμΈ μμ) | μμΈ λ°μ μν |
| νλ³ν λΆκ° μ μ²λ¦¬ | null μ²΄ν¬ νμ |
μμΈ μ²λ¦¬ νμ |
| μ½λ μμ | var result = obj as string; |
var result = (string)obj; |
as νλ³ν μ¬μ© μμ nullμ λ°ννλλ‘ μ€κ³ν λ μ 리.null 체ν¬λ‘ μ²λ¦¬ν μ μλ κ²½μ°.νλ³ν λ°©μμ μ νν λμ κΈ°μ€μ μμ μ±κ³Ό μ μ°μ±μ λλ€.
asλ₯Ό μ¬μ©ν©λλ€.κ°λ° νκ²½κ³Ό μꡬ μ¬νμ λ§κ² μ μ ν νλ³ν λ°©μμ μ ννλ κ²μ΄ μ€μν©λλ€.